Можно ли изменить гибридный тип карты как StyledMapType?
Мне было интересно, если бы вы могли изменить функции гибридного типа карты, как вы можете сделать с типом карты стиля. Я спрашиваю об этом, потому что я хочу показать спутниковую карту (или измененную гибридную карту) только с границами страны, без названий дорог и т. Д.
Заранее спасибо!
1 ответ
Решение
Вы можете наблюдать событие 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');