2009-03-05 1 views
4

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

Благодаря

ответ

3

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

Далее вам понадобится алгоритм для поиска, какие города/почтовые индексы находятся в радиусе X миль от города/почтового индекса. Here's another link, который должен объяснить, как это сделать.

+0

, конечно, эти базы данных имеют довольно высокую цену, так как это такой ценный товар ... – annakata

+0

Если вы хотите получить самую последнюю и самую последнюю актуальную, то да. Но вы можете найти более старые базы данных, которые на 99% полны бесплатно. –

+0

http://federalgovernmentzipcodes.us/ –

3

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

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

  1. PostgreSQL + Postgis: Это сочетание с открытым исходным кодом базы данных и географической протяженности является достаточно мощным для большинства основных потребностей пользователей. You can start from here
  2. MySql Spatial
  3. Oracle Spatial
  4. ArcSde (ESRI)
0

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

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