是否可以将Hybrid maptype更改为StyledMapType?

时间:2012-02-29 14:38:11

标签: google-maps-api-3 google-maps-styled

我想知道你是否可以改变混合maptype的功能,就像你可以在styledmaptype上做的那样。我问这个是因为我想展示卫星地图(或改变混合地图)只有国家边界,没有道路城市名等。

提前致谢!

1 个答案:

答案 0 :(得分:2)

您可能会观察到地图的 maptypeid_changed 事件。

使用getMapTypeId()检查当前的mapTypeId,如果它等于google.maps.MapTypeId.HYBRID,请使用map.setOptions()

将以下样式应用于地图
{
    featureType: "all",
    elementType: "labels",//hides all labels
    stylers: [
      { visibility:'off' }
    ]
  },
  {
    featureType: "road",//hides the roads
    stylers: [
      { visibility:'off' }
    ]
  }

当mapTypeId不是google.maps.MapTypeId.HYBRID时,应用相同的样式,但将两个可见性样式设置为

最后看起来像这样:

google.maps.event.addListener(map, 'maptypeid_changed', function() {

  var onoff=(this.getMapTypeId()==google.maps.MapTypeId.HYBRID)
              ?'off'
              :'on';

             this.setOptions(
                {
                  styles:[{
                            featureType: "all",
                            elementType: "labels",
                            stylers: [{ visibility:onoff }]
                          },
                          {
                            featureType: "road",
                            stylers: [{ visibility:onoff}]}
                        ]
                }
                );

});
google.maps.event.trigger(map,'maptypeid_changed');