2

我想知道您是否可以像在 styledmaptype 上那样更改混合地图类型的功能。我问这个是因为我想显示只有国家边界的卫星地图(或更改的混合地图),没有道路城市名称等。

提前致谢!

4

1 回答 1

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应用相同的样式时,但将两个可见性样式设置为on

最后它可能看起来像这样:

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');
于 2012-02-29T16:18:44.120 回答