纬度和经度问题

时间:2016-09-30 13:04:25

标签: asp.net-mvc sql-server-2008 google-maps-api-3

我想通过给定的Zipcode和radius来获取Zipcode列表。

例如 - 如果我为例如'111111'输入Zipcode并设置里程'50',则可能会返回半径之间的密码列表。

如果我们无法获得Zipcode列表,那么请尝试获取给定半径的所有纬度和经度。

2 个答案:

答案 0 :(得分:0)

根据您对问题的惊人描述,您似乎遇到了地理空间问题。

A)您需要一个地理空间数据存储区,其中邮政编码为点或多边形。 b)现在你正在进行前缀搜索,这是一个带有地理距离过滤器的简单sql查询。

您可以使用弹性搜索或Postgis甚至spatiallite等方式轻松完成此操作。

还有其他方法,但是地理距离是最简单的方法,请看这个使用elasticsearch的示例

答案 1 :(得分:0)

是的,我找到了一个完全符合我需要的WebService。您只能提供一个简单的ZipCode和一个国家或者一个完整的地址,并在响应中获得经度/纬度。然后我发送纬度和经度返回以获得所提供坐标附近的所有ZipCodes列表以及也可以自定义的给定半径。您可以过滤希望服务返回的总行数,或者即使您将使用英里或公里作为度量单位。

因此,基本上使用返回的信息,我将获取的每个最近的ZipCode的坐标提供给谷歌API,并将这些兴趣点渲染到您需要显示的地图中。

这些服务由GeoNames提供。它是一个致力于地理定位服务的组织。它们也提供高级数据,但特别是这些服务是免费使用的,显然信息不如高级数据准确,但实际上在我的测试中我发现这是可靠的,响应也非常快。另一个很好的优势是获得使用Geonames服务密钥的过程非常简单。

我给你留下了我正在谈论的服务链接。

可用服务列表:http://www.geonames.org/export/web-services.html

希望它可以帮助很多人。此致!

相关问题