2016-09-30 196 views
-3

我想通过给定的Zipcode和半径的Zipcode列表。纬度和经度问题

例如 - 如果我输入例如'111111'的邮编并设置英里'50'它可能会返回半径之间的PIN码列表。

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

+1

您是否期望sql server只理解邮政编码,或者您是否拥有zipcodes及其关联的经纬度数据库? – Jamiec

+0

是的先生我想要完全相同的东西https://www.freemaptools.com/find-zip-codes-inside-radius.htm这样的,但谷歌api – pandey

+0

这是毫无疑问基于一个大的数据库的邮编,与他们的纬度/长。你有这些数据吗? – Jamiec

回答

0

是的,我发现一个WebService是不正是我需要的。你只能提供一个简单的ZipCode和一个国家或者一个完整的地址,并在响应中获得经度/纬度。然后我发送Latitude and Longitude返回,以获得所提供坐标附近的所有ZipCode列表以及可定制的给定Radius。您可以过滤您希望服务返回的所有行,或者即使您将使用英里或公里作为度量单位。

所以,基本上与返回的信息一样,我将获取到的每个最接近ZipCode的坐标都提供给Google API,并将这些感兴趣的点呈现在您需要显示的地图中。

这些服务由GeoNames提供。它是一家致力于地理定位服务的组织。他们还提供优质数据,但特别是这些服务没有使用,显然信息不如高端信息准确,但实际上在我的测试中,我发现这是可信的,而且响应速度也非常快。另一个好处是,获得使用Geonames服务的密钥的过程非常简单。

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

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

希望它可以帮助很多人。问候!

0

基于你对你的问题的惊人描述,似乎你有一个地理空间问题。 A)您需要一个地理空间数据存储,其中邮政编码为点或可能是多边形。 b)现在你在前缀搜索之后,这是一个带有地理距离过滤器的简单sql查询。

你可以用elasticsearch或Postgis甚至spatiallite来做这件事。

还有其他的方法为好,但地表距离是让最简单的方法,看看下面这个例子,它使用elasticsearch

+0

先生我不想用数据库做我想活的工作,所以建议我.. – pandey