python GeocoderError:错误REQUEST_DENIED reverse_geocoder pygeocoder

问题描述

所以是这样的: 我需要找到拍摄照片的位置。 我设法获取了照片的坐标并将其保存在纬度和经度变量中,但是当我尝试通过python提取这些坐标的城市位置时,出现了该错误: 我的代码

FlowerData

错误: GeocoderError:错误REQUEST_DENIED 查询https://maps.google.com/maps/api/geocode/json?latlng=12.971600%2C77.594600&sensor=false&bounds=&region=&language=

我该如何解决?如果生病了,会在哪里插入Google地图的KPI代码

tnx寻求帮助!

解决方法

您需要传递您的API密钥。
参见下面的示例

import googlemaps

gmaps = googlemaps.Client(key='Add Your Key here')

# Look up an address with reverse geocoding
reverse_geocode_result = gmaps.reverse_geocode((40.714224,-73.961452))
,

我认为您正在混合使用两个反向地理编码器包。

reverse_geocoder

您第一次导入的reverse_geocoder会像这样

In [1]: import reverse_geocoder as rg

In [2]: results = rg.search((12.9716,77.5946))
Loading formatted geocoded file...

In [3]: results
Out[3]:
[{'lat': '12.97194','lon': '77.59369','name': 'Bangalore','admin1': 'Karnataka','admin2': 'Bangalore Urban','cc': 'IN'}]

reverse_geocoder软件包非常好,因为它是离线反向地理编码器,这意味着它具有软件包中包含的所有地址,并且不需要任何API密钥或互联网访问。

pygeocoder

pygeocoder的Geocoder需要Google Maps的API密钥。有关说明,请参见Google Maps API Key documentation。请注意,您需要一个Google Maps计费帐户,使用该帐户可能会花费很多钱。正确的语法是

location = Geocoder(api_key='INSERT API KEY HERE').reverse_geocode(12.9716,77.5946)

Geocoder的文档来自IPython帮助:

In [4]: Geocoder?
Init signature: Geocoder(api_key=None,client_id=None,private_key=None)
Docstring:      A Python wrapper for Google Geocoding V3's API
Init docstring:
Create a new :class:`Geocoder` object using the given `client_id` and
`private_key`.

:param api_key: Google Maps Simple API key
:type api_key: string

:param client_id: Google Maps Premier client ID
:type client_id: string

:param private_key: Google Maps Premier API key
:type client_id: string

Google Maps API Premier users can provide his key to make 100,000
requests a day vs the standard 2,500 requests a day without a key
,

也没用。 我试过了:


location = Geocoder(api_key='myCode').reverse_geocode(12.9716,77.5946)


这是整个错误,如果它可以帮助您:

---------------------------------------------------------------------------
GeocoderError                             Traceback (most recent call last)
<ipython-input-85-083207d98109> in <module>
     68 # print("City:",location.city)
     69 
---> 70 location = Geocoder(api_key='myCode').reverse_geocode(12.9716,77.5946)
     71 

D:\paython\lib\site-packages\pygeocoder.py in reverse_geocode(self,lat,lng,sensor,bounds,region,language)
    161 
    162         if self is not None:
--> 163             return GeocoderResult(self.get_data(params=params))
    164         else:
    165             return GeocoderResult(Geocoder.get_data(params=params))

D:\paython\lib\site-packages\pygeocoder.py in get_data(self,params)
    210 
    211         if response_json['status'] != GeocoderError.G_GEO_OK:
--> 212             raise GeocoderError(response_json['status'],response.url)
    213         return response_json['results']
    214 

GeocoderError: Error REQUEST_DENIED
Query: https://maps.google.com/maps/api/geocode/json?latlng=12.971600%2C77.594600&sensor=false&bounds=&region=&language=&key=AIzaSyB7FWHM4cZsUogGIb50R3uTK2ks97jh6vM

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...