2012-03-30 45 views
12

Wenn man in Google Maps nach einer Stadt sucht, zum Beispiel Berlin, werden die Gemeindegrenzen von Berlin (graue gestrichelte Linie mit rosa dicker Linie innen) angezeigt.Google Maps API v3 Gemeindegrenze

Ist es möglich, dasselbe mit Google Maps API zu machen?

+2

Derzeit nicht in der Karten-API unterstützt, aber die twitter-API bietet eine Umgehungslösung: [Hinzufügen "Suchbereich" Umriss auf Google Maps-Ergebnis] (http://stackoverflow.com/questions/9706484/add-search- Bereich-Umriss-auf-Google-Karten-Ergebnis) –

Antwort

0

Ich denke es ist, aber die Logik könnte möglicherweise ziemlich verrückt sein. Sie können dem MapView eine Ansicht hinzufügen und mit Mapview's LayoutParams können Sie eine geographische Länge und Breite angeben.

Dies ist einer meiner "nuklearen Ansätze". Ich denke, das MapView-Objekt selbst kann Ihnen sagen, wie groß und groß das Mapview-Objekt ist. Sobald das Material auf dem Bildschirm angezeigt wird, können Sie die Kartenansicht selbst messen. Von hier aus haben Sie die Möglichkeit, die Pixel in Längen- und Breitengrade und zurück zu übersetzen. Von hier aus können Sie einer Ansicht alle möglichen Daten zuführen, um sie zu zeichnen.

Nun, um etwas zu tun, um einen perfekten Umriss einer Grafik auf der Karte zu bekommen, müsste man wahrscheinlich auf eine niedrigere Ebene kommen und Pixelvergleiche machen.

Die andere Alternative besteht darin, herauszufinden, wie man den Umriss des Bereichs nachzeichnet und dann rendert.

1

Ich denke, Sie möchten einen Umriss auf der Karte, die ein Gebiet definiert, in Ihrem Fall das Stadtgebiet von Berlin.

Ich weiß, in den Vereinigten Staaten gibt es Volkszählungsdaten, die die Längen- und Breitengrade aller Landkreise, die zum kostenlosen Download zur Verfügung stehen. Ich bin mir nicht sicher, ob Deutschland etwas Ähnliches hat, aber eine Google-Suche nach "Langen Breitenkoordinaten skizziert Berliner Gemeinde" zeigt viele Ergebnisse.

Was tun Sie also mit den Koordinaten, nachdem Sie sie gefunden haben? Mit Google Maps API können Sie Polygone basierend auf Geokoordinaten auf der Karte platzieren.

Ich verwende den Google Encoded Polylines Teil der Geometry-Bibliothek, um meine Polygone zu speichern und sie dann wieder anzuzeigen, wenn ein bestimmter Status angezeigt wird.

Beispiel

var map = new google.maps.Map(document.getElementById("googlemap"), myOptions); 
var encodedpoints = "<encoded points string>"; 

var polyOptions = { 
    "strokeColor": '#000000', 
    "strokeOpacity": 1, 
    "strokeWeight": 1, 
    "fillColor": "#000000", 
    "fillOpacity": 0.5 
}; 
polyOptions.path = google.maps.geometry.encoding.decodePath(encodedpoints) 
var mypolygon = new google.maps.Polygon(polyOptions); 
mypolygon.setMap(map); 

wird dieses Beispiel wird einen Polygon auf der Karte setzen, die eine schwarze Linie Grenze und 50% Opazität schwarze Füllung hat. Sie können die Optionen beliebig ändern.