Domanda

Voglio creare una sovrapposizione in cima a Google Maps che consente di visualizzare le strade differenti in diversi colori.

Nel API di Google Maps è possibile creare marcatori e poligoni che coprono alcune aree.

C'è un modo per marcare in qualche modo strade diverse?

È stato utile?

Soluzione

Sembra a me come siete interessati a mostrare un po 'di colorazione specifica applicazione per la visualizzazione mappe Google (piuttosto che le mappe di traffico).

Se è così, allora si dovrebbe verificare sovrapposizioni personalizzate. È possibile creare il proprio trasparenti piastrelle di fondo overlay (con le strade colorate), di abbinarle con le mappe di Google piastrelle e poi sovrapporre sulla mappa. È possibile trovare una descrizione di questa roba nel Maps API di riferimento - Sovrapposizioni .

Ho effettivamente stato interessato a provare questo fuori, e questa domanda potrebbe essere una buona scusa. Ti farò sapere come vado.

Edit: Ok, ho provato questo ed è stato abbastanza semplice . Hai solo bisogno di afferrare le immagini piastrelle quando la pagina carico google maps (per l'area che si vorrebbe sovrapporre). Assicurati di tenere traccia degli URL origional, perché questi hanno le coordinate x, y che sarà necessario per scrivere il metodo di piastrelle di sovrapposizione.

Modifica le piastrelle con le strade colorate poi caricarli sul vostro web server. Aggiungere il seguente codice per utilizzare il proprio overlay sulla mappa regolare:

var myCopyright = new GCopyrightCollection("© ");
myCopyright.addCopyright(new GCopyright('Demo',
              new GLatLngBounds(new GLatLng(-90,-180), new GLatLng(90,180)),
                0,'©2007 Google'));

// Create the tile layer overlay and 
// implement the three abstract methods                 
var tilelayer = new GTileLayer(myCopyright);

// properties of the tile I based my tile on
// v=w2.97&hl=en&x=38598&s=&y=49259&z=17&s=Galil.png
tilelayer.getTileUrl = function(point,  zoom) { 
    if (zoom == 17 && point.x == 38598 && point.y == 49259)
        return "../pics/times_square.png"; 
};

tilelayer.isPng = function() { return true;};
tilelayer.getOpacity = function() { return 1.0; }

var myTileLayer = new GTileLayerOverlay(tilelayer);
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(40.75740, -73.98590), 17);
map.addOverlay(myTileLayer)

Questo codice si sovrappone il mio Cosa mangia NY Piastrella:

in x = y = 38.598 e 49259 a livello di zoom 17.

Altri suggerimenti

E 'possibile creare marcatori e poligoni nella API di Google Maps. È necessario creare GPolygon e / o oggetti GPolyline

Dai un'occhiata al questi tutorial

E se si desidera ottenere le coordinate (latitudine, longitudine) di certe strade, si può dare un'occhiata al codice sorgente di questa pagina

Non sono sicuro di comprendere appieno la tua domanda: volete contrassegnare alcune date strade? in tal caso, un modo veloce-and-dirty potrebbe essere quello di ottenere le coordinate di tutti gli indirizzi della strada e costruire un GPolygon secondo loro ...

Avete concidered utilizzando OpenStreeMaps ?

Prova a scavare nel codice utilizzato per mostrare la sovrapposizione del traffico sul normale sito di Google Maps.

Edit: Ho appena guardato il codice, e sembra che anche Google ha deciso che era più facile da implementare questo semplicemente generando le linee di traffico sul server e tirando verso il basso le sovrapposizioni PNG trasparenti come

.

Ho appena trovato questo link , e credo che questo potrebbe interessarti. Si tratta di un pacchetto di JavaScript che fornisce funzionalità per la visualizzazione di più percorsi su Google Maps.

E 'quello che stavi cercando ??

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top