Клуб API Карт

[API 2.1] Запрос на поиск объектов определенного типа в указанном радиусе

Snake-CD
18 июня 2014, 15:49

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


Вопрос заключается в следующем:

Допустим мы определяем координаты исходной точки через прямое геокодирование, затем, как я понимаю, должен осуществляется запрос через PHP к базе данных яндекса на объекты в указанной зоне (которая высчитывается по формулам) и указанного типа с сохранением их в свою коллекцию. После мы уже оперируем с ними, вычисляя расстояние между ними с помощью: coordSystem.getDistance(); 

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

И если не затруднит, хотелось бы чтобы меня или поправили или направили в нужном направлении, с какими источниками лучше ознакомиться, как, собственно, вычисляются эти формулы вычисления области поиска (выборки) (я представляю себе это следующим образом: при запросе мы определяем расстояние между координатами исходной (опорной) точки и координатами проверяемого объекта (процесс перебора объектов), и если значение (приведенное в метры) менее указанной ранее дистанции поиска, то происходит выборка этого объекта, но опять же как это осуществить не представляю и на сколько я понимаю, формула зависит от выбранной проекции (в моем случае она стандартная)) и т.п.

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

1. У Яндекса есть сервис поиска топонимов (геокодер)

Сервиса поиска объектов каких-либо других типов кроме топонимов у Яндекса нет.

2. АПИ Карт – клиентская технология и работает только в интернет браузере.

Использовать его в php или еще где-то за пределами браузера запрещено условиями использования АПИ

 

В вашем случае надо собирать свою базу объектов нужного типа, либо искать такие сервисы.

Поиск объекта в определенном радиусе реализуется с помощью стандартных средств БД (spatial extensions) php для этого не нужен

"Поиск объекта в определенном радиусе реализуется с помощью стандартных средств БД (spatial extensions)"

... но с вашей БД это запрещено, правильно? И единственный способ - собрать свою?

Я имею ввиду, могу ли я это сделать с использованием стандартных средств API Яндекс'а, или мне придется собирать свою базу?

 

В любом случае презнателен за ответ)

У Яндекса нет публично доступного АПИ для этого.

Про spatial я говорил в контексте вашей базы объектов.

Как я понимаю, получить адрес объекта, заведомо не имея о нем информации (т.е. провести поиск от определенной области) я не смогу с помощью стандартных средств API Яндекс Карт, пока не соберу собственную базу?

Т.е. организовать даже простейший сервис поиска ближайших метро, без своей базы не выйдет?