我正在處理一個需要通過jQuery ajax調用從我的.NET API中提取GeoJSON的項目。 當我嘗試將數據分配給一個變量,然後將其加載到谷歌地圖這樣的:當從API中提取時出現無效的GeoJSON錯誤
map.data.addGeoJson(data);
它拋出一個錯誤說:
JS:70InvalidValueError:不是一個功能或的FeatureCollection
如果我要採取的API給出了同樣的答覆,並直接粘貼到HTML文件(這樣分配相同的值到JS變量數據),它工作正常,並在地圖渲染
我的猜測可能是編碼問題?我甚至將回應輸出到一個div,複製該div的值,粘貼它,並且它工作。它似乎只是當我直接分配API的值,它會引發錯誤。
任何想法我可以做什麼來格式化或讓它正常工作?當腳本直接在JavaScript中寫出時,腳本是否會「打破」格式化的b/c?
非常感謝!
編輯: 我從API回來的數據已經被包裹在一個要素集合:
{ 「類型」: 「的FeatureCollection」, 「功能」:[{ 「ID」:5280, 「type」:「Feature」,「geometry」:{「type」:「MultiPolygon」,「coordinates」:[[[73.431919,40.989009],[-73.423452,40.990793],[-73.398054,40.996147] [-73.38958,40.99793],[-73.38958,40.99903],[-73.383594,40.99903],[-73.38358,40.99903],[-73.38408,40.99993],[-73.384029,40.999293],[ [-73.378172,41.000097],[-73.377449,4.19000289],[-73.375282,4.19000867],[-73.37456,41.00106],[-73.358967,41.004214],[-73.312189] ,41.013675],[-7 [-73.295532,41.017045],[-73.292437,41.017671],[-73.291406,41.01788],[-73.288203,41.018528],[-73.278594,41.020471],[-73.275543,41.020471],[-73.275539 ,[-73.272019,41.021556],[-73.270225,41.022069],[-73.261288,41.023711],[-73.254724,41.024916],[-73.249557,41.025866],[-73.24916] 41.025957],[-73.247968,41.026233],[-73.247572,41.026326],[-73.246328,41.026614],[-73.242596,41.027478],[-73.241353,41.027767], ... 結束
只是一個提醒,如果我將輸出直接粘貼到變量中,它就可以工作。如果我的變量等於API的響應,則失敗。
@ts暗中感謝這些鏈接,偉大的發現。任何想法爲什麼我的代碼不會工作,但?看來我已經把它們包裝在一個功能集合中(參見上面的我的東西)。除非你認爲我不能將它包裝在代碼的特徵集合中,而我實際上只需要返回沒有特徵的幾何體呢? –
你確定解析你得到的數據嗎?如果你嘗試 var geojson = JSON.parse(cave); map.data.addGeoJson(geojson); –
就是這樣!你說對了!謝謝:)任何機會,你可以更新你的答案只是提到這個,讓別人可以看到它?謝謝! –