- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在根据邮政编码计算纬度和经度。
我已经安装了geopy
pip install geopy
在我的代码中:
from geopy.geocoders import GoogleV3
def get_lat_lng(zip_code):
lat, lng = False, False
geocoder = GoogleV3()
location = geocoder.geocode(query=str(zip_code))
if location:
print location
lat, lng = location.latitude, location.longitude
return lat, lng
当我调用上述方法时,我给出了巴基斯坦拉合尔的邮政编码 54000。
get_lat_lng(54000)
经纬度输出为:
(46.975033, 31.994583)
拉合尔实际经纬度为
31.5546° N, 74.3572° E
在打印位置时我得到了:
Mykolaiv, Mykolaivs'ka oblast, Ukraine, 54000
有什么问题?
最佳答案
我能让它工作的唯一方法是使用 components 关键字传递国家代码和地区的字典:
from geopy.geocoders import GoogleV3
def get_lat_lng(zip_code):
geocoder = GoogleV3()
location = geocoder.geocode(query=str(zip_code),components={"country": "PK","locality":"lahore"})
if location:
print location._address
lat, lng = location.latitude, location.longitude
return lat, lng
print(get_lat_lng(54000))
哪些输出:
Lahore, Pakistan
(31.55460609999999, 74.3571581)
另一种选择是尝试使用 region=
关键字和/或显式传递域,而不是默认的 maps.google.com
。
即使将 exactly_one
设置为 False:
from geopy.geocoders import GoogleV3
def get_lat_lng(zip_code):
lat, lng = False, False
geocoder = GoogleV3()
location = geocoder.geocode(query=str(zip_code), exactly_one=False)
if location:
print [loc.address for loc in location]
print(get_lat_lng(54000))
不返回任何匹配。
[u"Mykolaiv, Mykolaivs'ka oblast, Ukraine, 54000", u'54000 Nancy, France', u'54000, Thailand', u'Kampung Datuk Keramat, 54000 Kuala Lumpur, Federal Territory of Kuala Lumpur, Malaysia', u'Tlalnepantla Centro, 54000 Tlalnepantla, M\xe9x., Mexico', u'54000, Broken Bow, OK 74728, USA', u'54000, Oklahoma, USA']
关于python - geopy 没有显示正确的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36477767/
我正在使用 VS,我正在尝试运行 geopy,我安装了所有先决条件并收到此错误 “ModuleNotFoundError:没有名为‘geopy.geocoders’的模块;‘geopy’不是包” fr
我已经安装了geopy pip install geopy 我检查了我的命令行,它就在那里。 但是每当我尝试在 Anaconda、PyCharm 或 Jupiter Notebooks 中使用它时,我
from geopy.distance import vincenty 我刚刚安装了 geopy 包 2.0.0,我想像 doc 所说的那样使用 geopy.distance.vincenty()。但
我正在尝试使用 geopy 获取城市和国家名称。 通常这是使用 geopy 获取城市和国家/地区的方法。 from geopy.geocoders import Nominatim geolocato
我正在尝试使用 geopy 反转地理编码坐标并检索相应的国家/地区代码。但是,Geopy 似乎没有提供获取国家/地区代码的方法。因此,我试图首先检索国家/地区名称,然后将它们转换为代码。不幸的是,我的
我正在尝试将加拿大邮政编码转换为经纬度坐标,但是 geopy 将它们返回为“无”或位于不同国家/地区的某个地方 postal_code = "A1B 2C3" #<-- in this format
我正在尝试使用 GeoPy 将一些地址转换为数据框中的坐标。有些地址无效,但我不知道是哪些地址。因此,我需要库跳过无效的字段或将它们更改为 Null 或至少提出错误的确切字段。 以下工作正常: imp
我已经将 geopy 用于 python 项目大约两个月了。我可能使用代码不到 100 次,一次获得一个返回。所以我不认为我在滥用它。 昨天我收到超时错误,今天我收到以下错误: geopy.exc.G
我有一些带有错误处理的 Python 代码,但出于某种原因,代码似乎仍然无法处理这个特定错误: raise GQueryError("No corresponding geographic locat
我正在尝试在 Python 中安装 Geopy。我如何用非常简单的术语来做到这一点?我安装了 Python 3.4.0 启动器。我在哪里编写 Geopy 安装命令?在扩展名为 .py 的文本文件上?还
我正在根据邮政编码计算纬度和经度。 我已经安装了geopy pip install geopy 在我的代码中: from geopy.geocoders import GoogleV3 def get
我正在使用 geopy 对一些地址进行地理编码,我想捕捉超时错误并将它们打印出来,以便我可以对输入进行一些质量控制。我将地理编码请求放在 try/catch 中,但它不起作用。关于我需要做什么的任何想
以下脚本可以完美处理包含 2 行的文件,但是当我尝试 2500 行文件时,出现 429 个异常。所以,我将查询时间增加到 5 秒。我还填写了用户代理。尝试失败后,我连接到 VPN 以更改“新鲜”,但我
背景 我想添加一个模型管理器函数,该函数根据与坐标的接近度过滤查询集。我找到了这个blog posting代码完全符合我的要求。 代码 下面的代码片段似乎使用了 geopy此后已删除的功能。它通过限制
背景 我想添加一个模型管理器函数,该函数根据与坐标的接近度过滤查询集。我找到了这个blog posting代码完全符合我的要求。 代码 下面的代码片段似乎使用了 geopy此后已删除的功能。它通过限制
我有一个充满十进制格式的经度/纬度对的表(例如,-41.547、23.456)。我想以 "Easting and Northing"/UTM 格式显示值。 geopy是否提供了从十进制转换为UTM的方
我正在尝试在 pyCharm 中运行 python 程序,但出现此错误: Traceback (most recent call last): File "/Users/amywang/Documen
我正在使用 geopy 获取城市名称的纬度-经度对。对于单个查询,这工作得很好。我现在尝试做的是迭代城市名称的大列表(46.000)并获取每个城市的地理编码。然后,我通过一个检查循环运行它们,将城市(
我刚开始使用 GeoPy。我需要将给定位置转换为纬度和经度。但是我收到 GeocoderQuotaExceeded 错误。我只是按照文档中给出的示例进行操作。任何帮助将不胜感激。 from geopy
我是一个相对较新的 Python 用户,我正在尝试使用一个函数来使用“geopy”模块返回城市和国家/地区的纬度和经度。我有错误,因为我的城市拼错了,我设法 catch 了。我现在遇到的麻烦是我遇到超
我是一名优秀的程序员,十分优秀!