2016-11-07 4 views
0

Я использую плагин leaflet.shapefile с Leaflet JS, и я пытаюсь изменить Esri формы/многоугольник в нормальные иконки маркеров в зависимости от определенного уровня масштабированиялистовка JS - изменение формы Esri в маркер на определенном уровне масштабирования

плагин позволяет мне загрузить ZipFile на нашем веб-сервер, который затем обрабатывается с помощью плагина и добавляется в качестве слоя в Листовке JS

var properties = new L.Shapefile('data/Test.zip', { style: propertyStyle, onEachFeature: propertyOnEachFeature }) 

то, что я хотел бы достичь: когда пользователь увеличенного в форме многоугольника видимо, однако, когда пользователь приближается к zoomlevel 10, он должен отображать маркер вместо этого, поскольку esri s hape/polygons очень маленькие и почти не видны.

зумирования и из части было легко сделать с:

map.on('zoomend', function() { 
    if (map.getZoom() <10){ 
     if (map.hasLayer(properties)) { 
      map.removeLayer(properties); 
     } else { 
      console.log("no property layer active"); 
     } 
    } 
    if (map.getZoom() >= 10){ 
     if (map.hasLayer(properties)){ 
      console.log("property layer already added"); 
     } else { 
      map.addLayer(properties); 
     } 
    } 
} 

Однако я не знаю, как изменить L.ShapeFile к L.Marker или что правильный подход будет.
Спасибо за помощь и совет.

UPDATE

Ответ 'IvanSanchez' при условии, мне было именно то, что я искал. С этой простой плагин «Leaflet.Deflate» Я был в состоянии просто преобразовать любую форму, многоугольник, круг или линию маркера и все, что потребовалось было включить плагин JS и один лайнер:

L.Deflate({minSize: 20}).addTo(map); 

ответ

1

ВИДЕТЬ Leaflet.Deflate plugin.

+0

спасибо IvanSanchez, это именно то, что я искал, работает как шарм. – user6450463

+0

HI Ivan, не могли бы вы взглянуть на мои ответы на предыдущий вопрос, мой вопрос здесь: http://stackoverflow.com/questions/40489828/leaflet-js-leaflet-deflate-changing-default- значок значка-значка на заказ, спасибо заранее – user6450463