2010-10-26 10 views
23

ich ein Code-Snippet auf http://www.41latitude.com/post/1268734799/google-styled-maps gefunden:Google Maps v3 verbergen Elemente (Straßen, Schilder usw.)

[ 
    { 
    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" } 
    ] 
    } 
] 

ich sollte es in der Lage sein, in meine Karten zu verwenden, aber gibt es jemanden, der mir sagen kann, wie Ich kann dieses Snippet verwenden? Ich kann nichts darüber in der API von Google Maps V3 finden.

+0

Ich weiß nicht wirklich viel auf der Seite sehen, es sieht aus wie sie den verschiedenen Grundkarten Straße, Satelliten verwenden usw. Sie verändern die Styling-Optionen wie bereits beschrieben. – Drew

+0

Es ist hier https://developers.google.com/maps/documentation/javascript/styling – BigJ

Antwort

33

Als @ceejayoz suggested in the other answer versuchen Sie, die neue Styled Map features der v3 Maps API zu verwenden. Hier ist ein sehr einfaches Beispiel, wie Sie die oben genannten Art in einer einfachen Karte verwenden:

<!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

Sie können auch die Google Maps APIs Styling Wizard prüfen wollen, die es Ihnen erlaubt, Stile grafisch bearbeiten.

+0

Großartig, dieses Beispiel war ein gutes Beispiel und gab mir die Lösung. –

+0

Ist es möglich, so etwas zu tun: 'featureType: [" poi "," transit "]' d. H. Alle auswählen und dann die Sichtbarkeit für alle gleichzeitig deaktivieren? – user2019515

+0

Ja, Sie können 'featureType:" all "' verwenden – GreatBittern

2

Ich weiß, das ist 5 Jahre alt, aber ich stolperte darüber und die akzeptierte Lösung ist meiner Meinung nach viel komplexer als nötig. In Anbetracht der JSON in der ursprünglichen Nachricht, das ist, wie Sie den Stil auf eine vorhandene Karte gelten würden:

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