传单中动态生成的标记

Dynamic generated markers in leaflet

本文关键字:单中 动态      更新时间:2023-09-26

我正在尝试在地图上显示自定义标记。标记是用我通过 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]);
          }
         });

显然我做错了; 像这样它工作:

       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]);