Яндекс карты конструктор отключить скролл

Обновлено: 25.04.2024

Сегодня мы начнем знакомство с апи Яндекс.Карт. Судя по вашим комментариям, мои статьи по Google Maps оказались полезными, поэтому я решил написать еще и про Яндекс.Карты.

Для начала давайте разберемся, зачем могут понадобиться Яндекс.Карты, если вы можете использовать Google Maps. Пожалуй самый веский аргумент для использования карт от Яндекса — лучшая поддержка городов России и СНГ. Да, Гуглокарты охватывают больше городов по миру, но по России Яндекс все же лучше.

Итак, хватит лирических отступлений, переходим к делу. Сегодня мы научимся подключать карты и настраивать элементы управления.

Вызов карты

Итак, для начала нужно сходить и получить ключ для работы с картами. Идем, получаем.

При вызове карты, она будет показываться внутри указанного вами блока, так что необходимо сначала этот блок создать. Затем, подключаем саму библиотеку Яндекс.Карт с указанным вами ключом:

Ну тут все ясно. Теперь нам нужно вызвать карту, поместить ее в указанный контейнер и настроить. Вызов карты делается так:

Теперь давайте посмотрим, как вызывать карту разного типа, ведь есть три встроенные типа карты:

  • «схема» — схематичное отображение объектов местности, используется по умолчанию; значение для аттрибута типа — YMaps.MapType.MAP;
  • «спутник» — спутниковая карта местности; YMaps.MapType.SATELLITE;
  • «гибрид» — спутниковая карта с названиями географических объектов; YMaps.MapType.HYBRID.

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

Элементы управления

Для управления картой существует несколько типов элементов управления.

Внешние
  • переключатель типа карты: схема, спутник, гибрид; TypeControl();
  • панель инструментов: перемещение карты, увеличение и измерение расстояния; ToolBar();
  • элемент масштабирования: тут все ясно; Zoom();
  • обзорная карта: уменьшенная карта показываемой местности; MiniMap();
  • масштабная линейка: позволяет оценить расстояние на карте; ScaleLine();
  • поиск по карте, позволяющий искать географические объекты; SearchControl();

Внешние элементы бывают пользовательские и встроенные. Пока что рассмотрим встроенные.

Для внешних элементов можно так же задавать их положение относительно границ блока карты, например чтобы расположить обзорну карту в правом нижнем углу с отступами в 10 пикселов от границ, нужно написать вот так:

Встроенные
  • перемещение; enableDragging() и disableDragging();
  • масштабирование двойным щелчком мыши; enableDblClickZoom() и disableDblClickZoom();
  • масштабирвоание колесиком мыши; enableScrollZoom() и disableScrollZoom();
  • лупа; enableMagnifier() и disableMagnifier();
  • горячие клавиши («+» и «-» для масштаба и стрелки «←» «→» для перемещения карты); enableHotKeys() и disableHotKeys();
  • линейка; enableRuler() и disableRuler().

Подключение (отключение) встроенного элемента управления происходит вот так:

Пользовательский внешний элементы управления

Рассмотрим этот момент на примере создания маркера в центре карты. Исходная задача: поместить на карту кнопку, при клике на которую по центру карты создавался бы маркер. Я написал реализацию кода и прокомментировал все ключенвые моменты:

Ну вот, все готово. Смотрим рабочий пример:

Заключение

В этой статье мы научились вызывать карту (с различными параметрами) и настраивать ее внешний под наши нужды (в том числе создавать свои элементы управления).

А теперь несколько полезных ссылок:

    АПИ Яндекс.Карт; и клуб разработчиков — частенько что-нибудь интересное проскакивает.

Если у вас есть какие-то вопросы или замечания по статье, то задавайте, не стесняйтесь. До новых встреч!

Автор: Павел Марковнин

Сооснователь Временно.нет. Интересуется онлайн бизнесом, дизайном, юзабилити и клиентским программированием. Участвует в разработке нескольких интернет-проектов.

project author

Если Вам понравился данный материал, поделитесь им с вашими друзьями в соц сетях

Элемент управления — визуальный объект, связанный с картой и предназначенный для взаимодействия с пользователем.

В большинстве случаев элементы управления размещаются в области показа карты.

API карт включает в себя несколько встроенных наборов элементов управления (для маленьких, средних и больших карт) и предоставляет возможность расположить элементы управления произвольным образом, а также реализовать собственный элемент управления.

Элементы управления автоматически адаптируются под размер карты и параметры устройства.

Набор элементов управления, которые добавляются на карту при ее создании, указывается в конструкторе карты. По умолчанию будет подключен набор 'default', состоящий из элементов управления:

  • поисковая строка (searchControl)
  • выбор типа карты (typeSelector)
  • полноэкранный режим (fullscreenControl)
  • ползунок масштаба (zoomControl)
  • геолокация (geolocationControl)
  • кнопка "Пробки" (trafficControl)

Элементы управления программно связаны с объектом карты и хранятся в виде коллекции, ссылка на которую содержится в поле controls.


элементы управления Яндекс.Карт (controls)

Указываем элементы управления при инициализации карты

создаем карту указывая элементы управления

Наборы элементов управления

Набор Описание Пример
smallMapDefaultSet Набор предназначенный для маленьких (менее 300 пикселей в ширину) карт controls: ["smallMapDefaultSet"]
mediumMapDefaultSet или default Набор предназначенный для стандартных (от 300 до 1000 пикселей в ширину) карт controls: ["default"]
largeMapDefaultSet Набор предназначенный для больших (более 1000 пикселей в ширину) карт controls: ["largeMapDefaultSet"]

Элементы управления Яндекс.Карт

Пример Элемент управления Описание
geolocationControl
geolocationControl Геолокации
searchControl
searchControl Поисковая строка
routeEditor
routeEditor Редактора маршрута
zoomControl
zoomControl Ползунок масштаба
fullscreenControl
fullscreenControl Полноэкранный режима
trafficControl
trafficControl Пробки
typeSelector
typeSelector Тип карты
rulerControl
rulerControl Измерение расстояний

Изменение элементов управления карты после ее создания

Рассмотрим методы для изменения элементов управления карты.

рассмотрим методы для работа с элементами управления на примере zoomControl

Пример с элементами управлениями карты

- Кнопки "Геолокации" - Поисковая строка - Редактора маршрута - Ползунок масштаба - Кнопка "Переключения полноэкранного режима" - Кнопка "Пробки" - Кнопка "Тип карт" - Кнопка "Линейка"

project author

Если Вам понравился данный материал, поделитесь им с вашими друзьями в соц сетях

В предыдущем материале Параметры Яндекс.Карт мы с Вами рассмотрели параметры Яндекс.Карты которые необходимо задать во время инициализации карты и возможно изменять после ее создания.

В данном материале мы рассмотрим что такое поведения карты (behaviors).

Поведения карты это набор поведений, определяющих реакцию карты на действия, производимые пользователем.

  • при нажатой левой кнопке мыши и перемещении курсора карта сдвигается вслед за курсором.
  • при прокручивании колесом мыши происходит изменение масштабирования карты
  • при двойном щелчке левой кнопки мыши происходит изменение масштабирования карты
  • и т.д.

Если явно не указать набор поведений при инициализации карты, то ей присваивается набор поведений по умолчанию. Доступ к поведениям карты предоставляется полем behaviors. Так же как и параметры карты, поведения можно изменить после ее создания карты.

Указываем набор поведений при инициализации карты

создаем карту указывая набор поведений

Набор поведений Яндекс.Карт

Поведение Описание
drag перетаскивание карты с помощью мыши либо одиночного касания
dblClickZoom масштабирование карты двойным щелчком кнопки мыши
leftMouseButtonMagnifier масштабирование карты при выделении области левой кнопкой мыши
rightMouseButtonMagnifier масштабирование карты при выделении области правой кнопкой мыши
multiTouch масштабирование карты мультисенсорным касанием
routeEditor редактор маршрутов
ruler "Линейка", позволяет отмечать на карте точки и отображать расстояния между ними
scrollZoom масштабирование карты колесом мыши
storage Хранилище классов поведений карты. Добавление нового поведения на карту производится через это хранилище

Изменение поведений карты после ее создания

Рассмотрим методы для изменения поведений карты.

Метод Описание
disable() Выключает поведение
enable() Включает поведение
isEnabled Проверяет, включено ли поведение, возвращает Boolean
getParent() Возвращает ссылку на родительский объект
setParent(parent) Устанавливает родительский объект. Если передать значение null, то элемент управления будет только удален из текущего родительского объекта

рассмотрим методы для работа с поведениями на примере поведения drag

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

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

JS-код

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

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

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

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

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

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

Заключение

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

До скорых встреч!

Об авторе блога

Автор блога Максим Васянович

предложить исправления

поделиться

ещё статьи на эту тему:

Обложка поста

Полезное

Бесплатные макеты Figma для верстки сайта №4

Обложка поста

Полезное

Бесплатные макеты Figma для верстки сайта №3

Обложка поста

Полезное

Большая подборка плагинов на чистом JS для разных задач

Обложка поста

Полезное

Бесплатные макеты Figma для верстки сайта №2

Обложка поста

Полезное

Бесплатные макеты Figma для верстки сайта

этот блог о веб-разработке.

лайфхаки, полезные сервисы, софт, а так же внутренняя кухня фриланса. здесь каждый найдет для себя что-то полезное!

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

🕔 Время: 3 минуты.

✅ Понадобится: аккаунт в Яндексе.

👉 Коротко суть: у карт Яндекса есть специальный сервис, который помогает сделать интерактивный фрагмент карты местности и добавить туда нужные обозначения — например, где находится офис или как до него добраться.

Собираем карту

Как добавить интерактивную карту на сайт

Перед нами откроется панель конструктора, где мы можем подготовить карту — добавить на неё нужные объекты и области:

Как добавить интерактивную карту на сайт

Например, если нам нужно показать, где именно находится офис или точка выдачи заказов, используем кнопку «Метки» — она добавит метку на карту, а мы заполним её описание:

Как добавить интерактивную карту на сайт

Меток на карту можно добавлять сколько угодно, а ещё настраивать их цвет и внешний вид. Кроме метки на карту можно нанести линии — например схему проезда — и области. За области отвечают «Многоугольники»:

Как добавить интерактивную карту на сайт

Когда на карту добавлено всё, что нужно, нажимаем «Сохранить и продолжить».

Получаем код для вставки

Всё, что нужно от нас на этом этапе, — подобрать размеры и начальный масштаб карты. Так как нам нужна интерактивная версия карты, выбираем вариант «Вставить на сайт» и «Интерактивная карта»:

Как добавить интерактивную карту на сайт

Когда масштаб выбран — нажимаем «Получить код карты» и копируем себе код вставки:

Как добавить интерактивную карту на сайт

JavaScript или iframe?

Если у вас на сайте есть возможность вставить готовый код JavaScript, выбирайте его — это более современный и надёжный подход.

Иногда системы управления контентом «режут» такой код. Если у вас он не заработает, попробуйте iframe. Справедливости ради, если вам «зарезали» JS, то iframe, вероятнее всего, тоже зарежут.

Добавляем код на сайт

Последнее, что нам осталось сделать, — добавить код в нужное место на сайте. Например, чтобы добавить карту сразу после заголовка страницы, достаточно вставить код после тега :

Как добавить интерактивную карту на сайт

Ограничение

Работоспособность карты зависит от сервисов Яндекса. Если что-то изменится, поменяется формат данных или сами сервисы Яндекса будут «лежать», то встроенный код работать не будет.

Правда, это довольно маловероятно, учитывая то, что Яндекс выдержал самую крупную в истории интернета DDoS-атаку. Кстати:

На базе веб-технологий делают всё — от сложного софта до высокобюджетных игр. Изучите технологии и начните карьеру в ИТ. Старт бесплатно. Попробуйте, вдруг вам понравится.

Читайте также: