2016-05-05 13 views
0

リーフレットサイトの例は非常に便利ではないので、マップ上にGeoJSONをトラックとして描くために一般的なヒントに従いました。つまり、オブジェクトは正しく保存されていますが、マップに追加すると何も表示されません。私はここで何が欠けていますか?私はリーフレットの新人です。ありがとうございました。リーフレットにGeoJSONを描く

コード:

... 

$.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は非同期メソッドです。これは、要求が完了し、.doneコールバック関数が呼び出されるまで、geoが存在しないことを意味します。コールバック内に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]); 
}); 
+0

ええ、それです! – Shoplifter20

関連する問題