使用函数跟踪加拿大边界。 (加拿大的经度和纬度边界)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用函数跟踪加拿大边界。 (加拿大的经度和纬度边界)相关的知识,希望对你有一定的参考价值。

我正在编写一个在加拿大生成随机地址的python脚本。要做到这一点,我必须生成加拿大边界内(不在海洋中)的随机元组(经度,纬度)。我想我可以用小矩形近似边界(就像在微积分中一样)。这项工作起作用,但不是最佳/准确的。

我在网上找不到任何学术论文/讨论,也许我的搜索没有包含正确的关键字。你能帮我找到合适的资源甚至回答这个问题吗?编程部分很好,我只需要数学!

谢谢

答案

你在谈论反向地理编码。最简单的方法是使用谷歌地图地理编码API。

您可以在不注册的情况下执行此操作,但您每天只能拨打4-5个电话。你可以免费注册一个相对较多的电话(最后我检查了20-25k),如果超过你必须支付。

import requests
import json
def getplace(lat, lon):
    url = "http://maps.googleapis.com/maps/api/geocode/json?"
    url += "latlng=%s,%s&sensor=false" % (lat, lon)
    data = {'key': 'your-api-key-goes-here'} # If using your free 5 calls, include no data and just doa  get request on the url
    v = requests.post(url=url, data=data)
    j = json.loads(v.text)
    components = j['results'][0]['address_components']
    country = town = None
    for c in components:
        if "country" in c['types']:
            country = c['long_name']
        if "locality" in c['types']:
            town = c['long_name']
    return town, country


print(getplace(45.425533, -75.69248))
print(getplace(45.525533, -77.69248))

以上输出:('渥太华','加拿大')(“巴里湾”,“加拿大”)

您可以打印出原始响应print(v.text以查看数据对象并找到您真正关心的字段

以上是关于使用函数跟踪加拿大边界。 (加拿大的经度和纬度边界)的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 R 中的纬度/经度边界从 netCDF 文件中获取子集

在地图上绘制点,经度和纬度保持部门之间的边界

如何从R中的州边界获取纬度和经度数据

如果我有他们的纬度/经度位置,我如何找出用户的邮政编码?需要帮助编写查询

给定每个区域的边界和纬度/经度,以编程方式查找州/县

国家边界的纬度/经度数据集[关闭]