Вывод точек на карте Яндекс. Интеграция с Яндекс Карты
Введение
Карта с точками выводится как специальный режим компонента таблицы (viewMode=yamap).
Внимание! Бесплатная версия Яндекс Карт имеет ограничения. Про тарифы и ограничения бесплатной версии - https://yandex.ru/dev/maps/commercial/
Демостенд отображения точек на карте Яндекс.
Множество интерактивных примеров от Яндекса, которые позволят лучше понять настройки отображения карт - https://yandex.ru/dev/maps/jsbox/2.1/icon_customImage
Вывод маркеров на Яндекс Карте
Для настройки карты необходимо сделать следующее:
0 Получаем ключ API Яндекс Карт - https://yandex.ru/dev/maps/jsapi/doc/2.1/quick-start/index.html#get-api-key. В будущем управлять своими ключами API Яндекса можно здесь - https://developer.tech.yandex.ru/services
1. Создаем таблицу без столбцов (столбцы можно будет добавить только в случае необходимости фильтров).
2. Прописываем GetItems
В SELECT 1 указываем точки
В SELECT 3 указываем viewType=yamap и yamapOptions
Пример:
CREATE PROCEDURE [dbo].[crud_yamap_getItems]
@filters CRUDFilterParameter READONLY,
@sort sql_variant,
@direction nvarchar(8),
@page int,
@pageSize int,
@username nvarchar(32)
AS
BEGIN
declare @points table (id int, lat float, lng float, hint nvarchar(max), draggable bit,
body nvarchar(max), header nvarchar(max), footer nvarchar(max), preset nvarchar(128),
icon nvarchar(max), iconCaption nvarchar(max), iconColor nvarchar(64), iconCaptionMaxWidth int,
formCode nvarchar(64), formItemID int, formBig int, formTitle nvarchar(256), formBtnText nvarchar(64))
insert into @points
select 1 id, 55.66 lat, 37.64 lng, 'hint1' hint1, 1 draggable,
'body1' body, 'header1' header, 'footer1' footer, '' preset,
'' icon, '' iconCaption, '' iconColor, 200 iconCaptionMaxWidth ,
'' formCode, '0' formItemID, 0 formBig, '' formTitle, '' formBtnText
union
select 1 id, 55.46 lat, 37.84 lng, 'hint2' hint1, 1 draggable,
'body2' body, 'header2' header, 'footer2' footer, '' preset,
'' icon, '' iconCaption, '' iconColor, 200 iconCaptionMaxWidth ,
'' formCode, '0' formItemID, 0 formBig, '' formTitle, '' formBtnText
-- SELECT 1
select *
from @points
-- SELECT 2
select 1
-- SELECT 3
select 1 HideTitleCount, 'yamap' viewtype,
'{
"height": "600px",
"key": "----------Наш ключ API----------------------------",
"searchProvider": "yandex#search",
"searchText": "",
"showUserLocation": false,
"mapParams": {
"center": [53.76, 37.64],
"zoom": 9
},
"clustererParams": {
"preset": "islands#invertedGreenClusterIcons"
},
"afterMoveMarkerRefreshContainer": "body"
}' yamapOptions
END
SELECT 1 имеет следующие параметры:
- id - идентификатор (нужен для сохранения позиции при перемещении)
- lat lng - координаты маркера
- hint - подсказка при наведении
- draggable - если 1, то точку можно перемещать
- body, header, footer - вывод некой разметки во всплывающем окошке при клике на маркер.
- preset - настройка отображения вида значка, например twirl#redStretchyIcon. Все примеры - https://yandex.ru/dev/maps/jsapi/doc/2.1/ref/reference/option.presetStorage.html
- icon, iconCaption, iconColor, iconCaptionMaxWidth - вывод у иконки текста, подсказки, изменение цвета иконки и ограничение длины подсказки (обрезка длинных названий).
- formCode, formItemID, formBig, formTitle, formBtnText - если указан formCode, то при клике на маркер будет выводиться модальная форма с itemID = formItemID. Если formBig=1, то окно будет большое. Кнопка сохранения имеет текст formBtnText, заголовок модального окна будет formTitle.
SELECT 3 - Настройки yamapOptions
- key - ключ АПИ Яндекс Карт. Получать здесь - https://yandex.ru/dev/maps/jsapi/doc/2.1/quick-start/index.html#get-api-key
- height - высота контейнера с картой. По умолчанию 400px.
- searchProvider - если активирован поиск в mapParams.controls (по умолчанию активирован), то данный параметр влияет на какие объекты будут искаться через поиск.
- searchText - если задан текст, то при загрузке карты сработает автоматический поиск и отображение найденных объектов.
- showUserLocation - если true, то на карте будет отражен значок местонахождения текущего пользователя (при условии, что он разрешил геолокацию в браузере).
- mapParams - настройки компонента Яндекс Карты (все свойства описаны здесь - https://yandex.ru/dev/maps/jsapi/doc/2.1/ref/reference/Map.html)
- center - установка центра карты
- zoom - какой будет масштаб карты по умолчанию при загрузке
- controls - массив выводимых элементов управления на карте (по умолчанию выводятся все элементы. Если необходимо все скрыть - то передаем [])
- clustererParams - настройки кластера маркеров (объединение нескольких маркеров в одну точку). Подробнее - https://yandex.ru/dev/maps/jsbox/2.1/clusterer_create
- afterMoveMarkerRefreshContainer - когда передвинули точку, есть потребность обновить часть экрана. В этом параметре указывается селектор для обновления области экрана. Пример: 'body'.
Как сохранить значение координат при передвижении маркера по карте
У точек необходимо установить draggable = 1.
Также необходимо реализовать updateItemField у таблицы.
CREATE PROCEDURE [dbo].[crud_yamap_updateField]
@itemID int,
@field nvarchar(64),
@value nvarchar(max),
@username nvarchar(64)
AS
BEGIN
print @itemID
print @value
print @field
if(@field = 'marker') begin
update t1
set lat = dbo.str_splitPart(@value, '||', 1), lng = dbo.str_splitPart(@value, '||', 2)
where id = @itemID
end else begin
select 'Невалидный код свойства' Msg, 0 Result
return
end
select '' Msg, 1 Result
END
Что передается на вход:
- в field приходит значение marker,
- value содержит координаты в виде lat||lng,
- itemID равно полю id из GetItems SELECT 1.
Дополнительные материалы
- Интеграция с Яндекс XML API
- Интеграция API Яндекс.Вебмастер
- Интеграция с Тургенев API для проверки качества контента
- Интеграция с Google Drive API
- Базовая интеграция с Jitsi Meet
- Интеграция с Vox Implant
Google поиск по нашей документации
- Руководства
- Основа Falcon Space
- Основные компоненты
- Возможности
- Коммуникация с пользователем
- Дизайн, стилизация, юзабилити
- Лендинги
- Универсальный API
- Примеры интеграций Прием платежей через Яндекс.Кассу Онлайн-платежи. Интеграция с Робокассой (платежный шлюз) Zapier интеграция на платформе Falcon Space Интеграция коллтрекинга МАНГО ОФИС (режим Площадка) Интеграция API DaData.ru подсказки по адресам Интеграция API Курсы валют Центрального Банка РФ в веб-платформе Falcon Space Интеграция API Почта РФ Интеграция API Служба доставки СДЭК (CDEK) Интеграция API Служба доставки Деловые линии Интеграция импорт и парсинг файла CSV Интеграция API IpGeoBase Город по IP-адресу Интеграция API DaData.ru Город по IP-адресу Как вычислить расстояние между 2 точками с координатами через Google Maps Сканирование штрихкодов и QR кодов через камеру и с картинок Получение данных контрагента по ИНН Прием платежей на сайте через CloudPayments Как сделать интеграцию с Мой Склад Внедрение подсказок dadata на сайт Вывод точек на карте Яндекс. Интеграция с Яндекс Карты Интеграция с телефонией Zadarma.com Получение данных о контрагенте - интеграция с сервисом ЗаЧестныйБизнес Интеграция с AMO CRM Как импортировать данные в базу CRM из Google Контакты Вход/регистрация через ВКонтакте(vk.com) Интеграция CRM с онлайн чатом на сайте (Replain) Как связать yandex metrika clientID с пользователем на сайте и посмотреть полный путь его по сайту? Телеграм. Работа с файлами Как сделать обработку входящей почты (создание клиента в CRM из Email) Интеграция сайта с ChatGPT (openAI) Интеграция с Яндекс Метрика Интернет-эквайринг Тинькоф Банк Интеграция с платежным шлюзом LifePay Как сделать вебхук для передачи данных с Тильды на Falcon Space Пополнение средств через Yookassa (Юкасса) Тинькофф Банк - уведомление в учетную систему по операциям с расчетным счетом Интеграция с Ютуб. Получение роликов канала Интеграция с Ozon, Wildberries - извлечение статистики Вывод данных из различных удаленных SQL Server через технологию Linked Server
- Каталоги
- Навигация
- Документы
- Дополнительные компоненты
- Продвижение, SEO
- Системные моменты
- Системное администрирование
- HOWTO
- Таблицы
- Формы
- Загрузка файлов, картинок
- Работа с SQL
- HOWTO JS
- HOWTO Верстка
- Решение проблем
Выгода от использования Falcon Space
В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
- Шаг 1. Создать концепт проекта
- Шаг 2. Получить оценку бюджета (КП)
- Шаг 3. Заключить договор
- Шаг 4. Создать совместно техническое задание
- Шаг 5. Поэтапная реализация проекта