2014-11-17 3 views
1

Я пытаюсь отобразить пользовательские маркеры на карте. Маркеры создаются динамически с каждой записью, через которую я получаю API. Изображения размещены в другом месте. Однако всякий раз, когда я пытаюсь подтянуть карту с помощью маркеров, которые не отображаются, появляется только маркер по умолчанию. Мне интересно, если я сделал что-то неправильно с установкой маркера:Динамические сгенерированные маркеры в листовке

var dynamicIcon = []; 
    var dIcon = []; 
    var weatherMarker = []; 
    $.getJSON('http://api.openweathermap.org/data/2.5/box/city?bbox=1.89,49.05,2.86,48.63,10&cluster=yes', function(data) 
      { 
      var i=0; 
      while(i < data.list.length-1) 
      { 
      dynamicIcon[i] = L.Icon.Default.extend({ 
       options:{ 
       iconURL:'http://openweathermap.org/img/w/'+data.list[i].weather[0].icon+'.png', 
       } 
         }); 
      dIcon[i] = new dynamicIcon[i](); 
      weatherMarker[i] = new L.marker([data.list[i].coord.lat, data.list[i].coord.lon], {icon: dIcon[i]}, {draggable:false}); 
      map.addLayer(weatherMarker[i]); 
      } 
     }); 

ответ

1

Видимо, я делал это неправильно; как это работает:

 dynamicIcon[i] = new L.Icon({ 
     iconUrl:'http://openweathermap.org/img/w/'+data.list[i].weather[0].icon+'.png', 
     }); 
     weatherMarker[i] = new L.marker([data.list[i].coord.lat, data.list[i].coord.lon], { 
         icon:dynamicIcon[i] }); 
     map.addLayer(weatherMarker[i]); 
Смежные вопросы