Можно ли изменить гибридный тип карты как StyledMapType? - PullRequest
2 голосов
/ 29 февраля 2012

Мне было интересно, можете ли вы изменить функции гибридного типа карты, как это можно сделать с помощью стиля карты. Я спрашиваю об этом, потому что хочу показать спутниковую карту (или измененную гибридную карту) только с границами страны, без названий дорог и т. Д.

Заранее спасибо!

1 Ответ

2 голосов
/ 29 февраля 2012

Вы можете наблюдать событие maptypeid_changed карты.

Проверьте текущий mapTypeId с помощью getMapTypeId () и, если он равен 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');
...