Как на яндекс картах убрать значки магазинов
Перейти к содержимому

Как на яндекс картах убрать значки магазинов

  • автор:

Как убрать стандартные маркеты в яндекс карте?

Добрый день! Делаю свою карту на базе яндекс карт и появился вопрос: как удалить стандартные метки на карте? Всякие там метро, остановки, памятники итд, мне нужна вообще голая карта. Долго копался в документации не нашел, подскажите, кто в курсе.

  • Вопрос задан более трёх лет назад
  • 5166 просмотров

Комментировать
Решения вопроса 0
Ответы на вопрос 2

DmitriyEntelis

Дмитрий Энтелис @DmitriyEntelis
Думаю за деньги

Никак. Эти метки отрисованы на слое стандартной карты, вы не можете их удалить.
Можно только переключаться между обычной/народной/спутником/гибридом

Как удалить все элементы управления яндекс-карт?

Подскажите как удалить все элементы управления с карты.
Спасибо.

  • Вопрос задан более трёх лет назад
  • 2379 просмотров

Комментировать
Решения вопроса 0
Ответы на вопрос 1
Веб-разработчик

Если карта создана через ЯндексAPI, то удалить все элементы управления можно двумя способами.
Первый способ — при создании карты в разделе установки параметров есть массив «controls». В нем должен быть перечислен список необходимых объектов управления. Если оставить его пустым, то карта инициализируется без элементов управления.

// Инициализация карты var myMap = new ymaps.Map('map', < center: [50.45754, 30.453987], zoom: 10, controls: [] >);

Второй способ — если карта уже создана, то можно отключать ненужные элементы управления следующим образом:

// Инициализация карты var myMap = new ymaps.Map('map', < center: [50.45754, 30.453987], zoom: 10 >); // Удаление стандартного набора кнопок myMap.controls.remove("mapTools") .remove("typeSelector") .remove("searchControl") .remove("trafficControl") .remove("miniMap") .remove("scaleLine") .remove("routeEditor") .remove("smallZoomControl");

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

Как убрать элементы управления на яндекс карте?

При помощи канструктора карт сгенерировал карту для сайта. Единственное можно как-то убрать элементы управления включая ползунок?

  • Вопрос задан более трёх лет назад
  • 26454 просмотра

Комментировать
Решения вопроса 0
Ответы на вопрос 2

Добавьте в конструктор:
controls: []
Здесь указываются элементы управления, которые мы хотим добавить. А т.к. коллекция пустая, то никакие элементы управления не будут добавлены.
Вот тут в документации написано про элементы управления https://tech.yandex.ru/maps/doc/jsapi/2.0/dg/conce.

Ответ написан более трёх лет назад
Нравится 8 1 комментарий
issssrt @issssrt Автор вопроса
В конструкторе нельзя добавить. Это только в коде.

А если controls: [] не помогает? Есть идеи почему может не работать? Типа карта создается не в тот момент.
Код обычный

myMap = new ymaps.Map( 'YMapsID', < center: [55, 55], zoom: 7, controls: [] >);

API версии 2.1 подключаю.
Я сначала запускаю геокодер, добавляю в коллекцию необходимые мне метки, потом создаю карту и добавляю на нее коллекцию с метками.

Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Ваш ответ на вопрос

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

яндекс.карты

  • Яндекс.Карты

Как происходит тарификация запросов отслеживание ГЕО, локатора и тд в Я. Карты?

  • 1 подписчик
  • 7 часов назад
  • 23 просмотра

Как скрыть все управляющие элементы с Яндекс карты?

Часто вижу вопросы как студентов, так и иных верстальщиков о том, что дизайнер подготовил тот или иной вид карты в макете, и ему нужно следовать. Ну например, делают вообще пустую карту с одним только маркером, убирая абсолютно все элементы на ней.

Вот как раз в этой статье я хочу показать, как это сделать. Давайте разбираться!

JS-код

На самом деле все очень просто, если заглянуть в доку и проявить смекалку. Начнем с JS

ymaps.ready(init);

function init()
var map = new ymaps.Map("map",
center: [55.60804306913301,37.615973499999946], // ваши данные
zoom: 15
>);

map.controls.remove('geolocationControl'); // удаляем геолокацию
map.controls.remove('searchControl'); // удаляем поиск
map.controls.remove('trafficControl'); // удаляем контроль трафика
map.controls.remove('typeSelector'); // удаляем тип
map.controls.remove('fullscreenControl'); // удаляем кнопку перехода в полноэкранный режим
map.controls.remove('zoomControl'); // удаляем контрол зуммирования
map.controls.remove('rulerControl'); // удаляем контрол правил
map.behaviors.disable(['scrollZoom']); // отключаем скролл карты (опционально)
>

По сути, этот код удалит все, что нам нужно. Однако после него еще остается снизу строчка с тем, что это именно Яндекс карты, со ссылкой на переход в сами карты и т.д. Не нашел, как это убирать через js, поэтому решил написать простой селектор на CSS.

CSS

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

Время от времени, при загрузке сайта, префикс меняется, и нетрудно догадаться, что через какое-то время ваш селектор по классу просто перестанет работать. Однако в CSS есть более умные селекторы, которые могут искать по кусочку css-класса, что нам и нужно, ведь буквенная часть класса неизменна. Пишем код:

[class*="copyrights-pane"]  
display: none !important;
>

Мы просто находим классы с упоминанием сopyrights-pane и скрываем их. important явно тут необязателен, но я решил добавить на всякий случай.

По большому счету, мы могли бы и другие контролы просто скрыть с помощью стилей, но тогда все равно ресурсы будут тратиться на загрузку этих скрытых элементов. Если уж API карт позволяет их скрыть «правильно» — стоит делать правильно.

Заключение

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *