如何进行基于位置的搜索

时间:2009-03-05 15:58:20

标签: .net geolocation

我需要开发一种解决方案,使用户能够根据城市和州进行搜索。用户应该能够请求搜索结果不仅包括该城市和州的匹配,还包括25,50,100英里半径范围内的匹配。我看到工作网站做了这类事情。这是如何完成的,是否有供应商提供开放式API?

由于

3 个答案:

答案 0 :(得分:3)

您需要从城市,州和邮政编码及相应纬度和经度的数据库开始。 Here's a link到您可以免费下载此类数据库的网站。

接下来,您需要一种算法来查找哪些城市/邮政编码位于城市的X英里半径范围内/输入的人员。 Here's another link应该解释如何做到这一点。

答案 1 :(得分:3)

您正在寻找的是GIS(地理信息系统),其中每条(或某些)信息都与其地理位置相关联。这样的系统允许在那些地理位置上执行空间搜索,例如。 “从这个销售特定产品的位置给我5英里的商店”(也可以结合空间和传统搜索)。

现在您可以使用一些技术示例:

  1. PostgreSQL + Postgis:数据库和地理扩展的开源组合足以满足大多数基本用户需求。 You can start from here
  2. MySql Spatial
  3. Oracle Spatial
  4. ArcSde (ESRI)

答案 2 :(得分:0)

你可能想看看GeoNames

我为GeoNames编写了一个.NET WCF客户端,可用here