Найти ближайшие места по указанному адресу - PullRequest
5 голосов
/ 29 апреля 2010

Я создал приложение в CakePHP, в котором перечислены предприятия. В нем около 2000 записей, а координаты широты и долготы для каждого предприятия находятся в БД.
Я сейчас пытаюсь заняться поиском.

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

Как бы я поступил так?

Ответы [ 2 ]

2 голосов
/ 30 апреля 2010

Я использую Yahoo Geo Planet API , чтобы определить место, соответствующее поисковому запросу, введенному пользователем. Это обычно соответствует нескольким местам, поэтому вы должны представить их обратно пользователю, чтобы они выбрали правильное. Затем, как только вы узнаете правильное место и его длинные позиции, которые предоставляет API Yahoo, вы можете использовать формулу haversine , чтобы найти ближайший бизнес для пользователей. Есть хороший пример в ответе на этот вопрос .

0 голосов
/ 29 апреля 2010

Я бы подошел к этому, создав квадрат вокруг точки, чтобы получить точку - это все в себе, поскольку вам понадобится база данных почтовых индексов или API, которые, как правило, стоят денег. Либо при покупке базы данных, либо за поиск.

Делая это по городам или по крайней мере, по крайней мере, вы, возможно, не уверены, что вернете лонг-лат из GMaps для этого города.

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

В любом случае, я бы сказал, что это непросто, просто потрясающий вопрос! Заинтересованы в предложениях людей.

...