2014-09-29 78 views
3

我正在使用Google Maps API样式地图向导(http://gmaps-samples-v3.googlecode.com/svn/trunk/styledmaps/wizard/index.html?utm_medium=twitter)自定义要放大至街道级别的缩放地图(缩放比例:16) 。我基本上想要摆脱所有标签,文字或图标。我到达95%左右,但仍然有一些标签,即:正方形名称。无法隐藏Google地图中的某些要素类型

直到现在我还没有找到一种方法来隐藏这些标签。虽然我怀疑Google地图(或此工具)的自定义功能存在问题,但我想问问任何人是否遇到同样的问题?有人有任何提示如何接近甚至可能解决这个问题?

在屏幕下方说明问题。 欢迎任何提示。谢谢!

enter image description here

function initialize() { 

     var mapStyles = [ 
      { 
       "featureType": "administrative", 
       "stylers": [ { "visibility": "off" } ] 
      },{ 
       "featureType": "road", 
       "elementType": "labels", 
       "stylers": [ { "visibility": "off" } ] 
      },{ 
       "featureType": "road", 
       "elementType": "geometry.stroke", 
       "stylers": [ { "visibility": "off" } ] 
      },{ 
       "featureType": "road", 
       "elementType": "geometry.fill", 
       "stylers": [ 
        { "visibility": "on" }, 
        { "color": "#ffffff" } 
       ] 
      },{ 
       "featureType": "transit", 
       "stylers": [ { "visibility": "off" } ] 
      },{ 
       "featureType": "poi.attraction", 
       "stylers": [ { "visibility": "off" } ] 
      },{ 
       "featureType": "poi.business", 
       "stylers": [ { "visibility": "off" } ] 
      },{ 
       "featureType": "poi.government", 
       "stylers": [ { "visibility": "off" } ] 
      },{ 
       "featureType": "poi.medical", 
       "stylers": [ { "visibility": "off" } ] 
      },{ 
       "featureType": "poi.park", 
       "elementType": "labels", 
       "stylers": [ { "visibility": "off" } ]     
      },{ 
       "featureType": "poi.place_of_worship", 
       "stylers": [ { "visibility": "off" } ] 
      },{ 
       "featureType": "poi.school", 
       "stylers": [ { "visibility": "off" } ] 
      },{ 
       "featureType": "poi.sports_complex", 
       "stylers": [ { "visibility": "off" } ] 
      },{ 
       "featureType": "landscape.man_made", 
       "stylers": [ 
        { "visibility": "on" }, 
        { "color": "#fce8f0" } 
       ] 
      },{ 
       "featureType": "landscape.natural", 
       "elementType": "labels", 
       "stylers": [ { "visibility": "off" } ] 
      },{ 
       "featureType": "landscape.natural", 
       "elementType": "geometry", 
       "stylers": [ 
        { "color": "#fce8f0" }, 
        { "visibility": "on" } 
       ] 
      },{ 
       "featureType": "water", 
       "elementType": "labels", 
       "stylers": [ { "visibility": "off" } ] }, 
      { } 
     ]; 

     var mapOptions = { 
      center: { lat: 52.519772, lng: 13.399022}, 
      zoom: 16, 
      scrollwheel: false, 
      mapTypeControl: false, 
      panControl: false, 
      zoomControl: false, 
      scaleControl: false, 
      streetViewControl: false, 
      styles: mapStyles 
     }; 

     var map = new google.maps.Map(document.getElementById('map-canvas'),mapOptions); 

    } 
    google.maps.event.addDomListener(window, 'load', initialize); 
+0

请提供一个展示此问题的[最小,完整,测试和可读示例](http://stackoverflow.com/help/mcve)。 – geocodezip 2014-09-29 15:57:00

+0

我已经添加了我的测试代码作为示例。会这样吗? – tvgemert 2014-09-29 16:38:44

+0

还发现此问题是针对Google地图的错误请求。解决方案请参阅下面的接受答案https://code.google.com/p/gmaps-api-issues/issues/detail?id=5572 – tvgemert 2014-10-01 12:56:31

回答

4

如果你想摆脱所有的文本标签,将它们关闭总数:

var mapStyles = [{ 
    featureType: "all", 
    elementType: "labels.text", 
    stylers: [{ 
     visibility: "off" 
    }] 
}]; 

如果你想摆脱所有的标签,elementType: "labels",才能既做到labels.textlabels.icon等。同样适用于要素类型。

var mapStyles = [{ 
    featureType: "all", 
    elementType: "labels", 
    stylers: [{ 
     visibility: "off" 
    }] 
}]; 

JSFiddle demo

documentation然而要注意父特征可能包括不包括在他们的孩子要素类型的一个部分附加功能。

+1

谢谢先生,我想的方式太具体了。 (为此寻找一个特定的featureType)关闭所有标签显然有助于:) – tvgemert 2014-10-01 12:55:29

+0

很高兴它帮助! – MrUpsidown 2014-10-01 15:59:08

+0

@tvgemert我不认为它太具体。这是一个令人讨厌的问题,我没有看到任何理由,为什么这些标签没有关闭,当你关闭道路标签时,因为它们是道路标签。至少在德国。 但是,谢谢@MrUpsidown! – PDXIII 2014-10-31 10:16:10