Я загружаю geojson из базы данных Postgis и хочу отобразить его на моей карте. После рисования многоугольника, я хочу, чтобы карта увеличивала масштаб до расширенного многоугольника.zoom to geojson polygons bounds в API Карт Google v3
Мои данные загружаются нормально и отображаются на карте корректно, но я не могу понять, как получить границы и изменить масштаб на вновь добавленный многоугольник. Я попытался использовать части кода от 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
.
В опубликованном коде отсутствует 'map'. – geocodezip
Карта уже определена в событии onload() тела, иначе это не сработает, чтобы отобразить многоугольник на карте. – geom
Основное отличие, похоже, в том, что данные geojson-данных загружаются в примере Google: 'function loadGeoJsonString (geoString) { var geojson = JSON.parse (geoString); map.data.addGeoJson (geojson); zoom (карта); } ' – geom