【发布时间】:2015-04-14 22:25:32
【问题描述】:
我正在从 Postgis 数据库加载 geojson,并希望将其显示在我的地图上。 绘制多边形后,我希望地图缩放到所添加多边形的范围。
我的数据可以正常加载并在地图上正确显示,但我无法弄清楚如何获取边界并将缩放更改为新添加的多边形。 我尝试使用 Google 的部分代码 Data Layer: Drag and Drop GeoJSON example, 但显示的地图放大了靠近贝克群岛的太平洋某处,而多边形在卢森堡正确显示。
这里是我使用的代码:
window.addEventListener("load", func1);
function func1(){
//Load mapdata via geoJson
var parzelle = new google.maps.Data();
parzelle.loadGeoJson("./mapdata/get_parzelle_geojson.php<?php echo "?gid=".$_GET['gid'];?>");
// Set the stroke width, and fill color for each polygon
var featureStyle = {
fillColor: '#ADFF2F',
fillOpacity: 0.1,
strokeColor: '#ADFF2F',
strokeWeight: 1
}
parzelle.setStyle(featureStyle);
parzelle.setMap(map);
zoom(map);
}
function zoom(map) {
var bounds = new google.maps.LatLngBounds();
map.data.forEach(function(feature) {
processPoints(feature.getGeometry(), bounds.extend, bounds);
});
map.fitBounds(bounds);
}
function processPoints(geometry, callback, thisArg) {
if (geometry instanceof google.maps.LatLng) {
callback.call(thisArg, geometry);
} else if (geometry instanceof google.maps.Data.Point) {
callback.call(thisArg, geometry.get());
} else {
geometry.getArray().forEach(function(g) {
processPoints(g, callback, thisArg);
});
}
}
有没有办法让它发挥作用?在google.maps.data-layers中似乎没有简单的方法来获取多边形的边界。
【问题讨论】: