2016-05-05 4 views
0

Поскольку я не нашел примеров на сайте Leaflet очень полезными, я попытался следовать их общим советам, чтобы нарисовать мой GeoJSON на карте в качестве трека. Дело в том, что объект правильно сохранен, но когда я добавляю его на карту, он ничего не показывает. Что мне здесь не хватает? Я новичок в Лифлете. Спасибо.Draw GeoJSON on Leaflet

Код:

... 

$.ajax('2016-05-04 13-13-36.gpx').done(function(response) { 
    geo = toGeoJSON.gpx(response); 
}); 

angular.element($elem[0]).append(angular.element('<div id="trackmap'+ trackmapCount +'" style="width: 100%; height: calc(100% - 25px); border: 1px solid #ccc"></div>')); 
trackmaps[trackmapCount] = new L.Map('trackmap'+ trackmapCount +'', {center: new L.LatLng(center[0], center[1]), zoom: 10}); 
var layer1 = osm.addTo(trackmaps[trackmapCount]); 

L.geoJson(geo, { 
style: myStyle 
}).addTo(trackmaps[trackmapCount]); 

ответ

3

$.ajax представляет собой асинхронный метод. Это означает, что geo не существует до тех пор, пока запрос не будет завершен, и вызывается функция обратного вызова .done. Вам необходимо будет создать свой объект внутри обратного вызова:

$.ajax('2016-05-04 13-13-36.gpx').done(function(response) { 
    geo = toGeoJSON.gpx(response); 
    L.geoJson(geo, { 
    style: myStyle 
    }).addTo(trackmaps[trackmapCount]); 
}); 
+0

Да, вот оно! – Shoplifter20

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