Un'altra idea è creare una seconda mappa, modificarla in un altro modo tramite StyledMapType, posizionarla in modo assoluto e posizionarla davanti alla prima mappa grigi.
Si può far sembrare tutto usando -webkit-maschera come descritto here
Si dovrebbe anche sincronizzare gli eventi tra mappe, in modo che essi coincidono, cioè centrato nella stessa posizione e hanno sempre lo stesso livello di zoom. È necessario anche per creare una sorta di blocker per evitare chiamate ricorsive
var block = false;
google.maps.event.addListener (thismap, 'center_changed', function(event) {
if (block) return;
block = true;
othermap.setCenter(thisMap.getCenter());
block=false;
});
Lo stesso dovrebbe essere fatto per 'center_changed' (per controllare le mappe di centraggio) e per 'zoom_changed' (mappe controllo dello zoom), per entrambe le mappe
Qui ho creato un example
Se sarà necessario creare più di una mappa in questo modo, avrete bisogno di lavorare di più per farli aderire al punti necessari
I don' Credo che ci sia un modo diretto per realizzare questo con l'API di Maps. Puoi controllare http://googlemapsmania.blogspot.com/2011/10/create-cool-mask-effect-on-google-maps.html per sovrapporre una maschera sulla mappa. –