2016-12-06 15 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

Это может быть проблема .. не может сказать без MVCE: http://stackoverflow.com/questions/14220321/how-do-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;

И тогда все мои coordinats получили связанный с временной шкале.