Блог API Яндекс.Карт

Множественное геокодирование

Нередко у пользователей API возникает задача геокодирования множества географических объектов. Например, когда на карте необходимо отметить сразу несколько городов, улиц или станций метро. Обычно геокодирование выполняется на стороне клиента, то есть запросы геокодеру отправляет бразуер. При множественном геокодировании такая практика может приводить к уменьшению скорости отображения объектов на карте и к увеличению трафика. Кроме этого, существует вероятность превысить суточный лимит в 25 000 запросов к геокодеру.

Решение проблемы — геокодирование данных на стороне сервера. Для реализации геокодирования на серверной стороне разработан Node.js-модуль (multi-geocode), который использует HTTP-сервис геокодирования. Данный модуль позволяет осуществлять поиск сразу множества объектов по их географическим названиям. Полученный результат может быть добавлен на карту с помощью встроенных функций API. Посмотреть более развернутый пример можно в следующих файлах: index.jssource.json (исходные данные), gecoded.json (результат геокодирования). Обратите внимание, что с помощью этого модуля можно делать только прямое геокодирование.

Если на карте необходимо искать всегда одни и те же географические объекты, то нет смысла производить геокодирование на каждом клиенте отдельно. В этом случае целесообразно выполнить его один раз на стороне сервера и кэшировать полученный результат. А клиентам передавать уже данные, подготовленные для добавления на карту, таким образом можно уменьшить количество запросов к геокодеру.

Описание геокодирования на стороне сервера добавлено на сайт API Яндекс.Карт в раздел Руководство разработчика.