python中的地理编码使用API密钥从地址获取纬度和经度
Posted
技术标签:
【中文标题】python中的地理编码使用API密钥从地址获取纬度和经度【英文标题】:Geocoding in python get Latitude and Longitude from addresses using API key 【发布时间】:2018-04-27 05:58:33 【问题描述】:我目前有一个数据框,其中包含某个地方的地址详细信息。我想使用 Google 地理编码 API 密钥来查找坐标 - 纬度和经度以绘制地图。有人知道怎么做这个吗?我已经尝试了下面的代码,但它在所有地址行上都返回“错误,正在跳过地址...”。
我将非常感谢任何帮助!
import pandas as pd
import os
from geopy import geocoders
from geopy.geocoders import GoogleV3
API_KEY = os.getenv("API1234")
g = GoogleV3(api_key=API_KEY)
loc_coordinates = []
loc_address = []
for address in df.Address:
try:
inputAddress = Address
location = g.geocode(inputAddress, timeout=15)
loc_coordinates.append((location.latitude, location.longitude))
loc_Address.append(inputAddress)
except:
print('Error, skipping address...')
df_geocodes = pd.DataFrame('coordinate':loc_coordinates,'address':loc_address)
【问题讨论】:
前面有两件事: 1. 这可能只是一个复制粘贴错误,但是当我想你的意思是inputAddress = address
时,你写了inputAddress = Address
,以便不为其分配类型变量,但你的 for 循环的变量。 2. 不要在 except 子句中打印“错误,跳过地址...”,而是尝试捕获实际的异常,这可能会给您更多提示出了什么问题(我敢打赌,在 inputAddress 分配之后的行中是 TypeError )。你会做except Exception as e:
,然后打印有关实际异常的信息。
另请参阅this question 以获取更多参考。
【参考方案1】:
您有一些拼写错误:Address
而不是 address
,loc_Address
而不是 loc_address
。
但是df.Address
是什么?
试试这个:
import pandas as pd
import os
from geopy import geocoders
from geopy.geocoders import GoogleV3
API_KEY = os.getenv("API1234")
g = GoogleV3(api_key=API_KEY)
loc_coordinates = []
loc_address = []
for address in df.Address:
try:
inputAddress = address
location = g.geocode(inputAddress, timeout=15)
loc_coordinates.append((location.latitude, location.longitude))
loc_address.append(inputAddress)
except Exception as e:
print('Error, skipping address...', e)
df_geocodes = pd.DataFrame('coordinate':loc_coordinates,'address':loc_address)
【讨论】:
谢谢你! df.Address df 是我正在处理的数据框,Address 是我试图获取纬度和经度的列 我已经在上面的行中声明了 import pandas as pd import numpy as np df.Address = pd.read_csv("") 一旦我使用给定的更正运行代码,我仍然会收到“错误,跳过地址” 你能在 for 循环之前添加一个print(df.Address)
并告诉我它在说什么吗?
我现在试试以上是关于python中的地理编码使用API密钥从地址获取纬度和经度的主要内容,如果未能解决你的问题,请参考以下文章
我可以从 HERE 的反向地理编码 API 调整返回的地址标签吗?
api 地理编码错误响应“此 IP、站点或移动应用程序无权使用此 API 密钥”