@Shuboanator

Почему не применяются фильтры стилей google maps?

Почему не применяется фильтр по стилям?
Иконка отображается, карта тоже, но почему то не применяются фильтры стилей.

var map;
function initMap() {
  map = new google.maps.Map(document.getElementById('map'), {
    center: {lat: 59.211499, lng: 39.839916},
    zoom: 18,
	panControl: false,
  	zoomControl: false,
  	mapTypeControl: false,
  	scaleControl: false,
  	streetViewControl: false,
  	overviewMapControl: false
  });
  
var image = 'img/arrow1.png';
	var beachMarker = new google.maps.Marker({
    position: {lat: 59.211499, lng: 39.839916},
    map: map,
    icon: image
  });
  
 var styles = [
    {
      featureType: "labels",
      elementType: "icon",
      stylers: [
        { visibility: "off" }
      ]
    }
  ];
}
  • Вопрос задан
  • 401 просмотр
Решения вопроса 1
А с чего они будут применяться? Я вижу обычный массив styles, не привязанный ни к какой карте.
Попробуйте добавить инициализацию стилей к карте.
var map;
function initMap() {
  map = new google.maps.Map(document.getElementById('map'), {
    center: {lat: 59.211499, lng: 39.839916},
    zoom: 18,
    panControl: false,
    zoomControl: false,
    mapTypeControl: false,
    scaleControl: false,
    streetViewControl: false,
    overviewMapControl: false
  });
  
var image = 'img/arrow1.png';
  var beachMarker = new google.maps.Marker({
    position: {lat: 59.211499, lng: 39.839916},
    map: map,
    icon: image
  });
  
 var styles = [
    {
      featureType: "labels",
      elementType: "icon",
      stylers: [
        { visibility: "off" }
      ]
    }
  ];

  map.setOptions({styles: styles}); // Добавить
}


Стили после этого должны применяться, но я не уверен в их валидности.

В документации есть ссылки на более подробную документацию api.
Там четко указано, какие значения могут принимать свойства featureType и elementType

Пример валидных стилей из той же самой документации
var styles = [
    {
    featureType: "all",
    stylers: [
      { saturation: -80 }
    ]
  },
  {
    featureType: "road.arterial",
    elementType: "geometry",
    stylers: [
      { hue: "#00ffee" },
      { saturation: 50 }
    ]
  },
  {
    featureType: "poi.business",
    elementType: "labels",
    stylers: [
      { visibility: "off" }
    ]
  }
];
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы