小叶标记没有出现

时间:2017-12-07 21:17:28

标签: javascript arrays leaflet

for (var f=0; f<group.length; f++) {
    var longitude = group[f][1];
    var latitude = group[f][0];
    var popupText = group[f][2];

    var markerLocation = new L.LatLng(longitude,latitude);
    var marker = new L.Marker(markerLocation);
    mymap.addLayer(marker);

    marker.bindPopup(popupText);
} 

我的群组数据采用这种格式

 [0]
 [0]53.522753
 [1]-1.126298
 [2]ASB

我的控制台正在说

Uncaught Error: Invalid LatLng object: (undefined, 53.522731)
    at new M (leaflet.js:5)
    at create_marker (hello.html:212)
    at JSON_callback (hello.html:169)
    at XMLHttpRequest.xmlhttp.onreadystatechange (requests.js:26)

设置组

var group = [];
var n = 3;

for (var i = 0, j = 0; i < current_lat_lng.length; i++) {
    if (i >= n && i % n === 0)
        j++;
    group[j] = group[j] || [];
    group[j].push(current_lat_lng[i])
}

我认为对象是正确的?但我不确定为什么会这样。感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

尝试以下方法:

for (var f=0; f<group.length; f++) {
    var longitude = group[f][1];
    var latitude = group[f][0];
    var popupText = group[f][2];

    if (longitude && latitude && popupText) {
        L.marker([latitude, longitude]).bindPopup(popupText).addTo(mymap);
    } else {
        console.error('group[' + f + '] has invalid entries:');
        console.error('longitude', longitude);
        console.error('latitude', latitude);
        console.error('popupText', popupText);
    }
}