【问题标题】:Convert Canadian Postal Code to Longitude and Latitude将加拿大邮政编码转换为经度和纬度
【发布时间】:2021-06-03 18:24:41
【问题描述】:

我有一份包含 100 个加拿大邮政编码的列表(例如 M4B 1C7)。无论如何将这些邮政编码转换为近似的经度和纬度值?目前,我正在使用以下网站手动执行此操作:https://geocoder.ca/

在 R 中有没有更快的方法来做到这一点?我遇到了 the tidygeocoder package ,但我不确定这是否适用于加拿大邮政编码。

【问题讨论】:

  • 这是一个很好的可下载文件来源:serviceobjects.com/blog/…
  • 谢谢!我会看看。你听说过 R 中的 tidygeocoder 包吗?
  • 我没有。但是对于您将区号转换为 long/lat 的应用程序,最好读取一次文件并执行连接,而不是不断地 ping 互联网以下载更多数据。
  • 连同@Dave2e 提到的内容,考虑删除空格并转换所有邮政编码tolower,然后加入。我不得不用更多的邮政编码做一个类似的项目,手动输入不是一种选择。这将有助于标准化他们的加入。如果需要,您可以保留一列邮政编码供以后参考
  • 谢谢大家!最后,我最终使用了@Dave2e 建议的链接——效果很好。谢谢!

标签: r geolocation geospatial geocoding latitude-longitude


【解决方案1】:

如上面@Dave2e 所述,数据可供下载here,尽管您必须注册并同意使用条款(基本上,您不能重新分发数据或违反任何其他法律:我'为了方便起见,我在下面引用了它们)。邮政编码数据不能更方便地获得似乎很奇怪,但显然它的知识产权地位是有争议的——加拿大邮政出售对数据库的访问权。

此解决方案在未来可能并不可靠:我之前曾使用其他来源获取此数据,然后这些来源已从网络上消失。这些文件于 2021 年 4 月 18 日可用。

下载并解压缩 CSV 文件后,这非常简单。

library(tidyverse)
cc <- (read_csv("CanadianPostalCodes202104.csv")
 ## if all you want is lat/long: file also includes city, province abbreviation,
 ## time zone - maybe useful for troubleshooting/proofreading
   %>% select(POSTAL_CODE, LATITUDE, LONGITUDE)
   %>% rename(postcode="POSTAL_CODE", lat="LATITUDE", lon="LONGITUDE")
)
mydata <- tibble(postcode=c("M4B 1C7","L8P 2V7"))
mydata_aug <- left_join(mydata, cc, by="postcode")
##   postcode   lat   lon
## 1 M4B 1C7   43.7 -79.3
## 2 L8P 2V7   43.2 -79.9

位置的图片(如果我费心将其放入具有省界等的适当空间环境中,这会更漂亮):我不确定显然在南部的十几个位置是怎么回事加美边境。例如,这个数据库显然认为 Stouffville ON 位于 44.8°N 93.3°W,根据谷歌地图,它位于美国明尼苏达州西布卢明顿的中部:根据实际情况,它位于 43°58′N 79°15′W到维基百科...

使用条款(部分):

您不得(也不允许任何第三方)转售、将 Zip 文件整合到任何产品或服务中、复制、分发、出售、披露、出借、转让、传送、修改、反编译、反汇编或对 Zip 进行逆向工程出于任何目的归档。

在任何情况下,您都不得:(i) 使用 Zip 文件中的信息建立数据库,以供转售或供第三方访问,与服务对象直接竞争; (ii) 允许以任何方式使用 Zip 文件中的信息来验证来自与服务对象直接竞争转售数据的第三方的信息; (iii) 向转售与服务对象直接竞争的数据的第三方或计划向其他第三方转售 Zip 文件或从 Zip 文件获得的信息的第三方提供对 Zip 文件的访问权或信息。

您同意严格遵守与您使用 Zip 文件有关的所有适用法律和法规。

【讨论】:

    猜你喜欢
    • 2012-10-30
    • 1970-01-01
    • 1970-01-01
    • 2013-09-29
    • 2017-05-23
    • 2020-04-10
    • 2012-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多