как сделать поиск на основе местоположения - PullRequest
4 голосов
/ 05 марта 2009

Мне нужно разработать решение, которое предоставит пользователю возможность поиска по городу и штату. Пользователь должен иметь возможность запрашивать, чтобы результаты поиска включали не только совпадения для этого города и штата, но также и совпадения в радиусе 25, 50 и 100 миль. Я вижу, что сайты вакансий делают подобные вещи. Как это сделать, и есть ли поставщики, которые предоставляют для этого открытые API?

Спасибо

Ответы [ 3 ]

3 голосов
/ 05 марта 2009

Кажется, что вам нужна ГИС (географическая информационная система), в которой каждый (или какой-то) фрагмент информации связан с его географическим положением. Такие системы позволяют выполнять пространственный поиск по этому географическому местоположению, например. «Дайте мне все магазины в 5 милях от этой позиции, где продается конкретный продукт» (также возможно комбинирование пространственного и традиционного поиска).

Теперь некоторые примеры технологий, которые вы можете использовать:

  1. PostgreSQL + Postgis : эта комбинация базы данных и географического расширения с открытым исходным кодом является достаточно мощной для большинства основных потребностей пользователей. Вы можете начать отсюда
  2. MySql Spatial
  3. Oracle Spatial
  4. ArcSde (ESRI)
3 голосов
/ 05 марта 2009

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

Далее вам потребуется алгоритм, чтобы определить, какие города / почтовые индексы находятся в радиусе X миль от города / почтового индекса, введенного человеком. Вот еще одна ссылка , которая должна объяснить, как это сделать.

0 голосов
/ 10 марта 2009

Возможно, вы захотите взглянуть на GeoNames .

Я написал .NET WCF-клиент для GeoNames, доступен здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...