Делаем черно-белую карту Яндекс для сайта и маркер любой картинкой

Делаем черно-белую карту Яндекс для сайта и маркер любой картинкой

Привет! Как сделать карту Яндекса монохромной (черно-белой), а картинки поставить свои и цветные? Небольшим кодом и следуя пункт за пунктом в описании. Поехали! НО! Сначала скажу, что сервис Яндекс.Карты не одобряет модификации своих карт (прописано в соглашении) и для UX такое решение не самое правильное. Такое решение больше для тех, кто за визуальную часть сайта (топим за дизайн).

Эта инструкция написана для работы в платформе Tilda Publishing, но код универсален для любого сайта.

Погнали.

1. Создаем в любой подходящей программе свой маркер на карту. Лично я использую Figma почти для всех задач, связанных с дизайном. Сохраняем его в SVG формате.

2. Открываем Тильду. Добавлен новый блок IM01 (изображение). Вставляем в него наш маркер. Кликаем на текст ссылки и копируем ссылку в буфер (или копипастим куда удобно). Прячем отображение блока, нажав иконку HIDE справа сверху. Она посередине.

Делаем черно-белую карту Яндекс для сайта и маркер любой картинкой

4. Добавляем Zero Block. Задаем ему необходимую высоту в настройках. После этого слева сверху нажимаем плюс и добавляем html блок.

Делаем черно-белую карту Яндекс для сайта и маркер любой картинкой

5. В настройках этого блока делаем отображение по window — center — center, ширину и высоту блока меняем на 100%.
6. Нажимаем кнопку EDIT CODE и добавляем туда наш код.

Делаем черно-белую карту Яндекс для сайта и маркер любой картинкой
<script src="//api-maps.yandex.ru/2.0/?load=package.standard,package.geoObjects&lang=ru-RU" type="text/javascript"></script> <div id="map" style="width:100%; height:100%;"></div> <script>ymaps.ready(init); function init() { var myMap = new ymaps.Map("map", { center: [55.751979, 37.617499], zoom: 15 }), // Создаем метку с помощью вспомогательного класса. myPlacemark1 = new ymaps.Placemark([55.751979, 37.617499], { // Свойства. // Содержимое хинта. hintContent: 'Надпись, которая всплаывет при наведении на метку' }, { // Опции // Своё изображение иконки метки. iconImageHref: 'https://static.tildacdn.com/tild3061-3235-4537-b066-616662373363/Group_783.svg', // Размеры метки. iconImageSize: [130, 130], // Смещение левого верхнего угла иконки относительно // её "ножки" (точки привязки). iconImageOffset: [-65, -110] }) // Добавляем все метки на карту. myMap.geoObjects .add(myPlacemark1) } </script> <style>.ymaps-layers-pane { -webkit-filter: grayscale(100%); }</style>

7. Правим код под свой маркер. Для начала пропишем путь к картинке маркеру. Если забыли ссылку, откройте скрытый блок IM01 и скопируйте путь к картинке оттуда. Если делаете так, не забудьте потом опять спрятать этот блок.

8. Теперь временно создадим любой блок с картой, чтобы найти навигационные точки. Например блок CN402. Нажимаем на кнопку «контент« этого блока, заходим ниже в меню ТОЧКА НА КАРТЕ 1 и кликаете на ссылку «Найти на карте»

​

9. В поле поиска на карте вводите нужный адрес и нажимаете ОК. После этого открываете еще раз настройки точки и копируете широту и долготу вашего адреса.

Делаем черно-белую карту Яндекс для сайта и маркер любой картинкой

10. Возвращаемся к блоку с кодом и во все места с цифрами широты и долготы вставляете свои значения.

Делаем черно-белую карту Яндекс для сайта и маркер любой картинкой

11. Для тото, чтобы всплывал нужный вам текст при наведении на иконку на карте — добавьте текст в строку с hint.

12. Поправляем иконку на карте. Внизу кода есть значения, изменив которые можно изменить размер иконки и подвинуть отображение вашего маркера на карте, если это необходимо.

Итог:

Сохраняем блок. Публикуем страницу и наслаждаемся ЧБ картой со своим цветным маркером.

Делаем черно-белую карту Яндекс для сайта и маркер любой картинкой

И последнее. Код взят из сети и немного поправлен под свои нужды. Если вы хотите экспериментировать с цветом карты, дерзайте и выкладывайте свои результаты в комментариях к этому посту! Удачи.

Спасибо Андрею Балыбердину за помощь в правке кода.

Меня можно найти здесь: https://manon.design

Я в Телеграм: @TaoTrip
Андрей в Телеграм: @Andrey041

1414
17 комментариев

На кой вам этот тяжелый JS-комбайн Яндекса?
Ставьте Leaflet и подключайте tiles с любого картографического сервиса.
Да хоть кнопкой переключайтесь между слоями Google Maps, Yandex, 2GIS, OSM.
У Leaflet невероятное количество различных плагинов, документации, к тому же весь код под открытой лицензией.

2
Ответить

Комментарий недоступен

1
Ответить

Спасибо ) Перепишу

Ответить

А потом яндекс блокирует доступ к сайту. Не учите дизайнеров как делать не надо

1
Ответить

Спасибо за комментарий, а вы знаете лично проекты, где так случилось?
Если да - поделитесь, если нет - не пишите того, чего не знаете.

Ответить

Автор, подскажите пожалуйста, все получилось с вашем скриптом, но не пойму как добавить возможность скроллинга (зумирования) карты колесиком мышки?? :(

1
Ответить

Спасибо! Полезно! Изучу сейчас
ЯД и правда очень тяжелый. Особенно для мобильных версий.

Ответить