如何从纬度和经度值中查找地点的名称

时间:2016-05-16 09:03:29

标签: sql-server sql-server-2008 geolocation google-places-api

我正在分析app数据,其中包含用户访问过的地点的lat值和lon值。我能够将数据导出到画面并在地图上绘制,但我想找到每对lat和lon的地名。

一个解决方案可能是,如果我得到一个包含三列(Lat,Lon,Place)的表格,那么我可以将其与我的用户数据表连接,以便在给定的Lat和Lon中找到一个地方的名称。

我的问题是,我们是否有一个现成的表格,上面有三列我可以在我的SQL-Server中导入?我对英国或伦敦的地方很感兴趣。有没有其他方法可以实现它?

2 个答案:

答案 0 :(得分:1)

你可以从条例调查中得到这个,这应该让你得到长期的邮政编码;

https://www.ordnancesurvey.co.uk/business-and-government/products/code-point-open.html

然后,您需要另一个数据源将邮政编码映射到位置名称(例如,城镇,县等)。请参阅下面的类似文章;

Where can I find a list of all UK _full_ postcodes including street name and their precise coordinates?

可能需要稍微调整一下,而且您总是会遇到数据有点过时的问题,但它应该足够好了。

答案 1 :(得分:1)

我在R中为API wrapper写了postcodes.io,这是一个免费的英国邮政编码数据库。查看原始文档,以便您可以使用您选择的语言创建API包装器。也可以使用R以外的语言包装。

如果您使用R,则输入以下列方式获取地名:

if (!require("devtools")) install.packages("devtools")
devtools::install_github("erzk/PostcodesioR")
library(PostcodesioR)

rev_geo <- reverse_geocoding(0.127, 51.507)

它将返回一个列表,其中包含有关纬度和经度的大量信息,例如:病房,NUTS,行政区,县,教区,选区,CCG等等。

还有一个bulk_reverse_geocoding()函数,它需要几个lat和lon输入。