2010-10-26 14 views
23

he encontrado un fragmento de código en http://www.41latitude.com/post/1268734799/google-styled-maps:Google Maps v3 ocultar los elementos (carreteras, roadsigns, etc.)

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

yo debería ser capaz de utilizarlo en mis mapas, pero ¿hay alguien que me cómo puede decir Puedo usar este fragmento? No puedo encontrar nada al respecto en la API de Google Maps V3.

+0

Realmente no veo mucho en la página, parece que están utilizando los diferentes mapas base de carreteras, satélite , etc. Manipulan las opciones de estilo como ya se detalla. – Drew

+0

Está aquí https://developers.google.com/maps/documentation/javascript/styling – BigJ

Respuesta

33

Como @ceejayoz suggested in the other answer, está intentando utilizar el nuevo Styled Map features del v3 Maps API. Aquí hay un ejemplo muy básico de cómo se puede utilizar el estilo por encima de un mapa sencillo:

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

Captura de pantalla:

alt text

También es posible que desee comprobar hacia fuera el Google Maps APIs Styling Wizard que le permitirá gráficamente editar estilos.

+0

Genial, este ejemplo fue un buen ejemplo y me dio la solución. –

+0

¿Es posible hacer algo como esto: 'featureType: [" poi "," transit "]' es decir, seleccionarlos todos y luego deshabilitar la visibilidad para todos ellos al mismo tiempo? – user2019515

+0

Sí puede, use 'featureType:" all "' – GreatBittern

2

Sé que esto tiene 5 años, pero me encontré con esto y la solución aceptada es mucho más compleja de lo necesario en mi opinión. Dado el JSON en el post original, esta es la forma en que se aplicaría el estilo a un mapa existente:

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