Applicare uno stile di mappa Google personalizzato in OpenLayers2?


10

Di recente mi sono imbattuto in questo interessante articolo che mostra il potenziale di aggiungere stili personalizzati a Google Maps. Qui puoi vedere alcuni esempi di mappe in stile e puoi progettare da zero qui .

Vorrei applicare il tema 'scala di grigi' alla mia mappa di base OpenLayers: inserisci qui la descrizione dell'immagine

La descrizione dello stile secondo la demo di Google sarebbe in qualche modo simile a:

var styles = {
  'Greyscale': [
    {              
      featureType: 'all',
      rules: [
        {saturation: -100},
        {gamma: 0.50}
      ]
    }
  ]
}

La mia mappa di Google in OpenLayers attualmente assomiglia semplicemente a:

var gmap = new OpenLayers.Layer.Google("Google Streets",
    {
    'numZoomLevels': 20,
    'sphericalMercator': true}
);

Come posso applicare il tema scala di grigi alla mia mappa?


Google Maps Colorizr googlemapscolorizr.stadtwerk.org può essere utile se desideri definire i tuoi colori specifici.
Radek,


Alcuni esempi di gioco con i colori: 41latitude.com/post/1268734799/google-styled-maps
radek

Non vuoi lasciar andare la generosità? :) Penso che Simo l'abbia capito
Ragi Yaser Burhum,

Infatti. Ancora tre giorni di gara;]
Radek,

Risposte:


20

Sembra che puoi accedere direttamente all'oggetto googlemap usando layer.mapObject .

Fare riferimento all'API gmap per definire lo stile del livello: https://developers.google.com/maps/documentation/javascript/styling

Ecco una piccola pagina di esempio che ho creato: http://www.intermezzo-coop.eu/mapping/styled_gmap.html

Vedi anche la procedura guidata di googlemap: https://mapstyle.withgoogle.com/


Ci sei riuscito, Radek?
simo

@simo: Non sono sicuro di come usare 'layer.mapObject'
radek,

1
@radek; dovrai creare alcuni dei tuoi JS per definire lo stile della tua mappa; ci sono molti buoni esempi sul secondo link che ti mostreranno un flusso molto buono.
DEWright,

1
@radek: non l'ho provato ma immagino che tu crei il tuo livello gmap così var glayer = new OpenLayers.Layer.Google (opzioni) , quindi crea il tuo stile usando la sintassi Gmap e infine applicalo facendo glayer.mapObject.mapTypes .set ('hiphop', jayzMapType); vedi l'esempio dato sopra. Se avrò presto del tempo, proverò a farlo e ti farò sapere
simo

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.