Ich lade Geojson aus einer Postgis-Datenbank und möchte es auf meiner Karte anzeigen. Nach dem Zeichnen eines Polygons möchte ich, dass die Karte auf die Ausdehnung des hinzugefügten Polygons vergrößert wird.zoomen zu geojson Polygonen Grenzen in Google Maps API v3
Meine Daten werden korrekt geladen und auf der Karte korrekt angezeigt, aber ich kann nicht herausfinden, wie die Grenzen erreicht und der Zoom auf das neu hinzugefügte Polygon geändert wird. Ich habe versucht, Teile des Codes von Google Data Layer: Drag and Drop GeoJSON example, zu verwenden, aber die angezeigte Karte zoomt irgendwo im Pazifischen Ozean in der Nähe der Baker Islands, während das Polygon korrekt in Luxemburg angezeigt wird.
Hier ist der Code Ich verwende:
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);
});
}
}
Gibt es eine Möglichkeit, dass die Arbeit zu bekommen? Es scheint, dass es keine einfache Methode gibt, die Grenzen von Polygonen in google.maps.data-layers
zu erhalten.
Im gebuchten Code ist keine Karte definiert. – geocodezip
Die Karte ist bereits im Ereignis body onload() definiert, andernfalls würde sie das Polygon auf der Karte nicht anzeigen. – geom
Der Hauptunterschied scheint darin zu liegen, wie die Geojson-Daten im Google-Beispiel geladen werden: 'function loadGeoJsonString (geoString) { var geojson = JSON.parse (GeoString); map.data.addGeoJson (Geojson); zoom (Karte); } ' – geom