2017-01-11 4 views
0

Я использую «Листовой слайдер» Денниса Вильгельма, чтобы показать изменения в данных на карте Листовки.изменить значок листка маркера

Я пытаюсь изменить изменение значка маркера, но не получаю его правильно. Итак, как я могу изменить значок маркера при использовании слайдера «Листовки», чтобы отображать изменения с течением времени? Какие изменения мне нужно сделать в исходном SliderControl.js?

Заранее благодарен!

Ниже приводится ссылка на код листовки Slider Денниса Вильгельма:

https://github.com/dwilhelm89/LeafletSlider/blob/master/SliderControl.js

ответ

0

Это будут точные изменения в исходном файле slidercontrol.js

if (this._layer) { 
     var index_temp = 0; 
     this._layer.eachLayer(function (layer) { 

      var greenIcon = L.icon({ //add this new icon 
       iconUrl: i+'.png', 
       shadowUrl: 'leaf-shadow.png', 

       iconSize:  [38, 95], // size of the icon 
       shadowSize: [50, 64], // size of the shadow 
       iconAnchor: [22, 94], // point of the icon which will correspond to marker's location 
       shadowAnchor: [4, 62], // the same for the shadow 
       popupAnchor: [-3, -76] // point from which the popup should open relative to the iconAnchor 
      }); 

      options.markers[index_temp] = layer; 
      options.markers[index_temp].setIcon(greenIcon); //Here set the icon to indiviual markers 

      ++index_temp; 
     }); 
     options.maxValue = index_temp - 1; 
     this.options = options; 
    } 
0

Вы можете создать новый класс значка, как показано ниже:

var LeafIcon = L.Icon.extend({ 
    options: { 
     iconSize:  [38, 95], 
     shadowSize: [50, 64], 
     iconAnchor: [22, 94], 
     shadowAnchor: [4, 62], 
     popupAnchor: [-3, -76] 
    } 
}); 

Затем создать новый объект значка, как показано ниже:

var greenIcon = new LeafIcon({ 
    iconUrl: 'http://leafletjs.com/examples/custom-icons/leaf-green.png', 
    shadowUrl: 'http://leafletjs.com/examples/custom-icons/leaf-shadow.png' 
}) 

Теперь вы можете над значком для маркера на карте, как показано ниже :

L.marker([51.5, -0.09], {icon: greenIcon}).addTo(map); 

Вы можете передать этот document для получения дополнительной информации.

Для slidercontrol вам нужно создать два изображения:

(1) Marker Icon [ Use name: marker-icon.png ] 
(2) Marker Icon Shadow [ Use name: marker-shadow.png ] 

После этого вы можете указать путь по умолчанию изображения, как показано ниже:

L.Icon.Default.imagePath = "Url to the image folder"; // This specifies image path for marker icon. 
e.x L.Icon.Default.imagePath = "http://leafletjs.com/examples/custom-icons"; 

Так значок URL-адрес будет:

Icon URL : http://leafletjs.com/examples/custom-icons/marker-icon.png 
Shadow URL: http://leafletjs.com/examples/custom-icons/marker-shadow.png 
+0

На самом деле, если вы видите файл оригинала slidercontrol.js (https://github.com/dwilhelm89/LeafletSlider/blob/master/SliderControl.js), здесь он добавляет маркер как .. map.addLayer (_options.markers [I]); а не как L.marker ([51.5, -0.09], {icon: greenIcon}). addTo (map); так, как изменить значок в map.addLayer (_options.markers [i])? –

Смежные вопросы