如何从纬度和经度值中找到一个地方的名称
Posted
技术标签:
【中文标题】如何从纬度和经度值中找到一个地方的名称【英文标题】:How to find the name of a place from latitude and longitude value 【发布时间】:2016-05-16 09:03:28 【问题描述】:我正在分析包含用户访问地点的纬度值和经度值的应用数据。我能够将数据导出到 tableau 并将其绘制在地图上,但我想找到每对 lat 和 lon 的地点名称。
一种解决方案可能是,如果我得到一个包含三列(Lat、Lon、Place)的表,那么我可以将它与我的用户数据表连接起来,以查找给定 Lat 和 Lon 的地点名称。
我的问题是,我们是否有一个包含上述三列的现成表,可以导入到我的 SQL-Server 中?我对英国或伦敦的地方感兴趣。还有其他方法可以实现吗?
【问题讨论】:
【参考方案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?
这可能需要花点时间,而且你总是会遇到数据有点过时的问题,但它应该足够好。
【讨论】:
感谢您的回复。我正在寻找类似的东西(latlong.net/Show-Latitude-Longitude.html)。获取他们正在使用的 API 或数据库并导入该数据库。例如。纬度 = 51.5147184975572 经度 = -0.301268398761749【参考方案2】:我在 R 中为postcodes.io 写了一个API wrapper,这是一个免费的英国邮政编码数据库。检查原始文档,以便您可以使用您选择的语言创建 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()
函数接受多个纬度和经度输入。
【讨论】:
以上是关于如何从纬度和经度值中找到一个地方的名称的主要内容,如果未能解决你的问题,请参考以下文章