2012-03-30 14 views
12

Se si cerca una città su Google Maps, ad esempio Berlino, vengono visualizzati i confini municipali di Berlino (linea tratteggiata grigia con linea spessa rosa all'interno).Google Maps API v3 confine municipale

È possibile fare lo stesso con l'API di Google Maps?

+2

Attualmente non supportato nell'API delle mappe, ma l'API di Twitter fornisce una soluzione alternativa: [Aggiungi contorno "Area di ricerca" al risultato di google maps] (http://stackoverflow.com/questions/9706484/add-search- zona-outline-su-google-maps-risultato) –

risposta

0

Penso che lo sia, ma la logica potrebbe essere abbastanza folle. È possibile aggiungere una vista a MapView e utilizzando i layoutparam di Mapview, è possibile specificare una longitudine geografica e una latitudine.

Questo è uno dei miei "approcci nucleari". Penso che l'oggetto MapView stesso possa dirti quanto è largo e alto l'oggetto mapview. Una volta che la roba viene disegnata sullo schermo, puoi misurare la mappa stessa. Da qui, hai la possibilità di tradurre i pixel in longitudine, latitudine e ritorno. Tu, da qui, puoi alimentare tutti i tipi di dati a una vista per disegnare.

Ora, per fare qualcosa come ottenere un contorno perfetto di un grafico sulla mappa, probabilmente si dovrebbe arrivare ad un livello inferiore e fare confronti con i pixel.

L'altra alternativa è capire come tracciare il contorno dell'area e quindi renderlo.

1

Penso che vogliate mettere un contorno sulla mappa che definisce un'area, nel vostro caso l'area comunale di Berlino.

So che negli Stati Uniti esistono dati sul censimento che hanno la longitudine e le latitudini di tutte le contee che sono disponibili per il download gratuitamente. Non sono sicuro che la Germania abbia qualcosa di simile, tuttavia una ricerca su Google per "coordinate lat lunghe delineano Berlino municipale" rivela molti risultati.

Quindi, cosa fai con le coordinate dopo averle trovate: l'API di Google Maps ti consente di posizionare i poligoni sulla mappa in base alle coordinate geografiche.

Io uso la parte Google Encoded Polylines della libreria Geometry per archiviare i miei poligoni e quindi visualizzarli di nuovo quando viene visualizzato uno stato specifico.

Esempio

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); 

Questo esempio mettere un poligono sulla carta che ha un bordo linea nera e il 50% di opacità riempimento nero. Puoi cambiare le opzioni in base alle tue esigenze.

Problemi correlati