用函数追踪加拿大边界。(加拿大经纬度界线)

2024-06-01 02:05:05 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

谢谢


Tags: 脚本地址编程数学关键字资源边界元组
1条回答
网友
1楼 · 发布于 2024-06-01 02:05:05

你说的是反向地理编码。最简单的方法是使用googlemaps地理编码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,以查看数据对象并找到您真正关心的字段

相关问题 更多 >