Adam
Adam

Reputation: 33

leaflet markers not appearing

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

my group array is in this format

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

my console is saying

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)

setting group

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

I think the object is correct? but I'm not sure why this is happening. any help is appreciated thanks.

Upvotes: 1

Views: 1294

Answers (1)

falsarella
falsarella

Reputation: 12437

Try the following:

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

Upvotes: 1

Related Questions