我无法在谷歌地图上显示json数据(geojson)。我已经在jslint检查了我的json文件,它没有报告任何此类错误。
我收到以下错误消息:InvalidValueError:in property“features”:at index 0:in property“geometry”:in property“coordinates”:at index 0:at index 5:not LatLng or LatLngLiteral:in property lat:不是数字。
以下示例代码:
var map;
function initialize() {
var map = new google.maps.Map(document.getElementById('map_canvas'), {
center:new google.maps.LatLng(53.760861, -98.813876),
mapTypeId: google.maps.MapTypeId.ROADMAP,
zoom: 5
});
// Load a GeoJSON from the same server as our demo.
map.data.loadGeoJson('data.json');
} // end initialize
google.maps.event.addDomListener( window, 'load', initialize );
任何建议表示赞赏。感谢。
答案 0 :(得分:0)
您应该使用http://www.geojsonlint.com检查您的GeoJSON您的JSON可以完全有效,但这并不意味着它是有效的GeoJSON。例如,你得到的错误:
{
"type": "Feature",
"properties": {},
"geometry": {
"type": "Point",
"coordinates": ["Foo", "Bar"]
}
}
以上是有效的JSON,虽然它不是有效的GeoJSON,但坐标数组应包含数字,而不是字符串。即使您有coordinates: ["1", "2"]
,它仍然无效,因为这些字符串与实际数字coordinates: [1, 2]
不同。
使用我在上面分享的链接检查你的GeoJSON,你会看到。
答案 1 :(得分:0)
感谢您的建议,这很有帮助。事实证明,geojson文件不是json可序列化的。我需要恢复geojson文件并确定它有什么问题。
干杯