我有Nominatim GeoJSON数据,表示一个国家的边界,比如这个https://nominatim.openstreetmap.org/search?country=it&polygon_geojson=1&format=json,并通过ajax获取它。我用传单来制作和显示地图。
在调用geoJson(jsonData)之后,我希望地图能够与fitBounds()相匹配,但我得到了Uncaught Error: Bounds are not valid.。
这是我的密码:
$.ajax({ url: NOMINATIM_BOUNDARY_URL })
.done( function(json) {
console.log(json); // the json is loaded correctly.
var layer = L.geoJson(json);
console.log(layer.getBounds()); // this prints 'undefined'. Why?
mapref.fitBounds(layer.getBounds()); // mapref is our map object.
});我想我得到了错误,因为边界是未定义的。为什么?
谢谢。
发布于 2022-07-27 10:24:43
多亏了伊万桑切斯在评论中的建议,我才解决了我的问题。
问题是,Nominatim对象除了GeoJSON之外还有其他一些东西,所以我只需要检查这个对象并使用我需要的东西,即json[0].geoJson。
然后,我的代码变成:
$.ajax({ url: NOMINATIM_BOUNDARY_URL })
.done( function(json) {
var layer = L.geoJson(json[0].geoJson);
console.log(layer.getBounds()); // this doesn't print 'undefined' anymore.
mapref.fitBounds(layer.getBounds()); // now this works!
});https://stackoverflow.com/questions/73097285
复制相似问题