Яндекс.Карты: создание карты глубин скважин

По вопросам разработки сервисов с использованием API Яндекс.Карт обращайтесь ко мне через раздел Контакты.

Исходные условия: есть карта глубин, созданная в конструкторе Яндекс карт. Точек (меток) очень много, из-за этого карта тормозит. Задача: объединить точки в кластеры, чтобы уменьшить тормоза и улучшить внешний вид.

Кластеризация меток: было — сталоКластеризация меток: было — стало

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

Скрин ответа разработчиков Яндекс картСкрин ответа разработчиков Яндекс карт

Значит, нужно переделывать карту с нуля, взяв из конструктора только исходные данные: координаты меток, названия деревень, информацию о почве.

Из конструктора Яндекс карт делаем экспорт объектов в .kml файл. На исходной карте присутствуют объекты нескольких видов:

— метки двух цветов (в зависимости от свойств почвы),
— многоугольники,
— толстые линии.

Разметка .kml файла довольно нестандартна, хоть это и обычный XML, но элементы называются по-своему, поэтому для его парсинга нужно писать специальный скрипт.

Формат данных при экспорте из Яндекс картФормат данных при экспорте из Яндекс карт

Далее наносим метки, полигоны, линии на Яндекс карту, используя свежую версию API (на момент написания заметки — 2.1). Метки помещаем в кластеризатор, а полигоны и линии — отдельно. Для сложных геометрических объектов кластеризация не предусмотрена. Но этих объектов всего пара десятков, и это не сильно замедляет отрисовку карты.

Пример всплывающей подсказкиПример всплывающей подсказки

И в заключение делаем косметические преобразования. Настраиваем плотность кластеризации (проверяем карту на разных увеличениях и на разных устройствах, и добиваемся, чтобы всё хорошо читалось). Причёсываем информацию во всплывающих подсказках к меткам, например, убираем лишние точки и превращаем м3 в м³.

Смотрите также

Спонсоры поста

Комментарии

Дальнейшие комментарии закрыты. По всем вопросам пишите или звоните мне лично, см. раздел Контакты

© 2020