2010-10-26 6 views
23

ho trovato un frammento di codice sul http://www.41latitude.com/post/1268734799/google-styled-maps:Google Maps v3 nascondere elementi (strade, Roadsigns, ecc)

[ 
    { 
    featureType: "administrative", 
    elementType: "labels", 
    stylers: [ 
     { visibility: "off" } 
    ] 
    },{ 
    featureType: "poi", 
    elementType: "labels", 
    stylers: [ 
     { visibility: "off" } 
    ] 
    },{ 
    featureType: "water", 
    elementType: "labels", 
    stylers: [ 
     { visibility: "off" } 
    ] 
    },{ 
    featureType: "road", 
    elementType: "labels", 
    stylers: [ 
     { visibility: "off" } 
    ] 
    } 
] 

dovrei essere in grado di usarlo nelle mie mappe, ma c'è qualcuno che mi come si può dire Posso usare questo snippet? Non riesco a trovare nulla a riguardo nell'API di Google Maps V3.

+0

Io davvero non vedo molto sulla pagina, sembra che stanno utilizzando le diverse mappe di base su strada, satelite , ecc. Manipolano le opzioni di stile come già dettagliate. – Drew

+0

E 'qui https://developers.google.com/maps/documentation/javascript/styling – BigJ

risposta

33

Come @ceejayoz suggested in the other answer, si sta tentando di utilizzare il nuovo Styled Map features di v3 Maps API. Ecco un esempio molto semplice di come è possibile utilizzare lo stile sopra in una semplice mappa:

<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/> 
    <title>Google Maps Dark Water Style Demo</title> 
    <script src="http://maps.google.com/maps/api/js?sensor=false" type="text/javascript"></script> 
</head> 
<body> 
    <div id="map" style="width: 550px; height: 300px;"></div> 

    <script type="text/javascript"> 
    var myStyle = [ 
     { 
     featureType: "administrative", 
     elementType: "labels", 
     stylers: [ 
      { visibility: "off" } 
     ] 
     },{ 
     featureType: "poi", 
     elementType: "labels", 
     stylers: [ 
      { visibility: "off" } 
     ] 
     },{ 
     featureType: "water", 
     elementType: "labels", 
     stylers: [ 
      { visibility: "off" } 
     ] 
     },{ 
     featureType: "road", 
     elementType: "labels", 
     stylers: [ 
      { visibility: "off" } 
     ] 
     } 
    ]; 

    var map = new google.maps.Map(document.getElementById('map'), { 
     mapTypeControlOptions: { 
     mapTypeIds: ['mystyle', google.maps.MapTypeId.ROADMAP, google.maps.MapTypeId.TERRAIN] 
     }, 
     center: new google.maps.LatLng(30, 0), 
     zoom: 3, 
     mapTypeId: 'mystyle' 
    }); 

    map.mapTypes.set('mystyle', new google.maps.StyledMapType(myStyle, { name: 'My Style' })); 
    </script> 
</body> 
</html> 

Screenshot:

alt text

Si consiglia inoltre di controllare le Google Maps APIs Styling Wizard, che vi permetterà di modifica grafica degli stili.

+0

Ottimo, questo esempio è stato un buon esempio e mi ha dato la soluzione. –

+0

E 'possibile fare qualcosa di simile: 'featureType: [" poi "," transit "]' vale a dire selezionarli tutti e quindi disabilitare la visibilità per tutti loro allo stesso tempo? – user2019515

+0

Sì, puoi usare 'featureType:" all "' – GreatBittern

2

So che questo è di 5 anni, ma ci siamo imbattuti in questa e la soluzione accettata è molto più complessa di quanto necessario a mio parere. Data la JSON nel post originale, questo è come si dovrebbe applicare lo stile ad una mappa esistente:

var mapStyle = [ 
    { 
    featureType: "administrative", 
    elementType: "labels", 
    stylers: [ 
     { visibility: "off" } 
    ] 
    },{ 
    featureType: "poi", 
    elementType: "labels", 
    stylers: [ 
     { visibility: "off" } 
    ] 
    },{ 
    featureType: "water", 
    elementType: "labels", 
    stylers: [ 
     { visibility: "off" } 
    ] 
    },{ 
    featureType: "road", 
    elementType: "labels", 
    stylers: [ 
     { visibility: "off" } 
    ] 
    } 
] 

//create map 
var map = new google.maps.Map(...); //This assumes you already have a working map 

//set style 
map.set('styles', mapStyle);