2016-12-06 63 views
0

我正在嘗試讀取將向地圖添加一些點的.geoJson文件。 我的數據文件lookes這樣的:

{ 
"type": "FeatureCollection", 
"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } }, 
"features": [ 
{ "type": "Feature", "properties": { "start": "1970", "end": "1972" },"geometry": { "type": "Point", "coordinates": [ 11.924550479340329, 55.94619451008279 ] } }, 
{ "type": "Feature", "properties": { "start": "1975", "end": "1976" }, "geometry": { "type": "Point", "coordinates": [ 12.06219628503271, 55.909617190392566 ] } }, { "type": "Feature", "properties": { "start": "1979", "end": "1980" }, "geometry": { "type": "Point", "coordinates": [ 12.06219628503271, 55.909617190392566 ] } }, 
{ "type": "Feature", "properties": { "start": "1980", "end": "1985" }, "geometry": { "type": "Point", "coordinates": [ 12.284822339303718, 55.639778377234506 ] } } 
] 
}; 

所以這是data.geojson。

正如你所看到的那樣,有開始日期和結束日期,我需要使用它來把它放在時間線上,否則我只會使用addTo(地圖),所有的點都會在那裏。

,但我的代碼來調用我的文件是:

var points = null; 
$.getJSON("data.geojson", function(data) { 
points = L.geoJson(data); 
}); 

嘗試和測試,如果代碼工作我做了「points.addTo(圖)」而這一切都去我的屏幕上一片空白,我敢肯定,我的數據工作,因爲當我寫這樣的代碼:

$.getJSON("data.geojson", function(data) { 
points = L.geoJson(data).addTo(map); 
}); 

我可以看到所有的點。但通過這樣做,我不能將我的數據用於正確的目的。 希望有人能幫助我解決這個問題。

+0

在你的第一個例子中,你如何以及何時調用'addTo(map)'?這感覺就像是一個異步問題。 –

+0

在第一個我需要的東西稍後,我將它添加到地圖 像'var pointsToTimeline = L.timeline(points);' 'pointsToTimeline.addTo(map);' 但這不起作用 – JessieQuick

+0

This可能是問題..沒有一個MVCE不能告訴:http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call/14220323#14220323 –

回答

0

我通過使用d3.json來解決這個問題,導入我的數據並將其用於我想要的目的,結果證明是異步問題。 通過inporting D3的裝載選項:

d3.select(window).on("load", init)

,然後使用此代碼加載文件:

d3.json("data.geojson", function(data) { console.log(data); console.log(data[0]); points = data;

然後我所有的座標系下得到了掛時間表。

相關問題