在Leaflet上绘制GeoJSON

时间:2016-05-05 17:44:38

标签: javascript leaflet geojson

由于我发现Leaflet网站上的示例非常有用,我尝试按照他们的一般提示将地图上的GeoJSON绘制为轨道。问题是,对象被正确保存,但是当我将其添加到地图时,它并没有显示任何内容。我在这里错过了什么?我是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]);

1 个答案:

答案 0 :(得分:3)

$.ajax是一种异步方法。这意味着在请求完成并调用geo回调函数之前,.done不存在。您需要在回调中创建L.geoJson对象:

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