Клуб API Карт

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

Сергей Mitroshn
7 мая 2014, 09:33

Есть задача вывода списка адресов в виде меток на Яндекс.Картах.

Адреса хранятся во внешней системе и периодически изменяются. Решено использовать следующий алгоритм:

1. Во внешней системе (не web) собирается список адресов, формируется запрос на геокодирование;

2. Результаты геокодирования сохраняются на сервер в формате JSON.

3. Клиент открывает страничку с картой, данные о координатах читаются из файла JSON и выводятся на карту.

С п.3 разобрался. Данные загружаются из файла на карту без проблем.

 

Встал вопрос с множественным геокодированием. Решил делать его на стороне сервера (как описано в документации). Но для множественного геокодирования необходим специальный Node.js-модуль (multi-geocode), который надо как то подключить (npm install multi-geocoder). Этот вариант выглядит несколько замороченным: нужно поставить менеджер пакетов, потом установить модуль (я сам не сетевой программист, поэтому для меня все это несколько непонятно). Хотя может я что то не понимаю и можно обойтись без установки менеджера пакетов?

Вторым вариантом является использование модуля из примера. Но метод geocode из данного примера возвращает коллекцию объектов, а не описание в формате GeoJSON или XML. И как эту коллекцию сохранить в файл я ума не приложу. Может кто то подскажет?

5 комментариев
Подписаться на комментарии к посту

а что замороченного в установке менеджера пакетов?

Нужно поставить node и npm 

Сергей Mitroshn
7 мая 2014, 11:47

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

Еще один детский вопрос. Сейчас я веду разработку на локальной машине. Ок. Установлю Node.js, менеджер пакетов. А на хостинге, где будет располагаться ресурс мне тоже нужно будет ставить node и npm? Или зависит от хостинга? И везде ли можно поставить node/npm?

Это зависит от хостинга.

На любом VPS хостинге вы можете ставить что угодно.

хостинг за 5$ в месяц возможно и нет

Сергей Mitroshn
7 мая 2014, 12:34

Так хорошо. Надо будет уточнить по хостингу. А что если необходимо сделать наиболее универсальный вариант без использования node.js. Например, воспользоваться использованием модуля геокодирования из примера. Но метод geocode из данного примера возвращает коллекцию объектов, а не описание в формате GeoJSON или XML. Можно как то сформировать описание коллекции объектов и сохранить его в файл без node.js?

Вы не сможете сохранять файлы из браузера. Это можно делать только на стороне сервера, для этого мы и написали модуль. Вместо nodejs можно использовать любую серверную технологию