我试图使用以下方法访问此JSON(见下文)文件中的数据,例如类型,属性等:
data = new google.maps.Data();
var json = data.loadGeoJson('insert-url-here');
for (var i=0; i < json.length; i++) {
var obj = json[i];
console.log(obj.coordinates);
}
我在for循环Cannot read property 'length' of undefined
的第一行收到错误。我想通过读取coordinates
值来放大对象。
google.maps.addListener(data, 'click', function () {
obj.setZoom(10);
}
我做错了什么?
JSON示例:
"features": [{ "type": "Feature", "properties": { "id": 18, "geometry": { "type": "Point", "coordinates": [ -34.397, 150.644 ] }
答案 0 :(得分:1)
要实际检索coordinates
属性,您需要执行此操作:
var json = {"features": [{ "type": "Feature", "properties": { "id": 18, "geometry": { "type": "Point", "coordinates": [ -34.397, 150.644 ]}}}]}
document.write(json.features[0].properties.geometry.coordinates);
&#13;
这个JSON构建如何
object
- property -> features (Array, length: 1)
[ Object
- property -> properties (Object)
- property -> geometry (Object)
- property -> coordinates (Array, length: 2)
]
答案 1 :(得分:1)
var json = data.loadGeoJson('insert-url-here');
这里的json变量作为未定义的对象返回,导致错误。还最好使用另一个变量名称
无论何时返回json,都可以使用eval()之类的东西来返回javascript对象。这样你就可以使用json.features [0] .properties.coordinates
访问坐标这里的功能是一个数组,所以你需要通过它们