【问题标题】:Googlemaps elevation API giving an error when passing arguments谷歌地图海拔API在传递参数时出错
【发布时间】:2020-02-25 00:57:25
【问题描述】:

我正在尝试使用 pandas 从 Excel 文件中获取海拔以读取文件和 jupyter 笔记本。我目前正在尝试找出我的代码产生错误的原因。

我的代码如下所示:

import os

import googlemaps
gmaps = googlemaps.Client(key= "XXXXXXXXXXXXXXXXXXXXXX")
elevation = gmaps.elevation("40.88292", "-98.37342")
print(elevation)

它返回错误:

  File "C:/Users/gabe/Desktop/a.py", line 6, in <module>
    elevation = gmaps.elevation("40.88292", "-98.37342")
  File "C:\Users\gabe\AppData\Local\Programs\Python\Python38\lib\site-packages\googlemaps\client.py", line 409, in wrapper
    result = func(*args, **kwargs)
TypeError: elevation() takes 2 positional arguments but 3 were given

我尝试过使用大量不同的坐标变体作为参数,但它总是返回这个错误。

【问题讨论】:

  • 试试gmaps.elevation([("40.88292", "-98.37342")]) ? googlemaps.github.io/google-maps-services-python/docs/…
  • 它给出了另一个错误` TypeError: can't multiply sequence by non-int of type 'float'`
  • 我去检查一下。顺便说一句,该模块的 sourceforge 页面显示 * 注意:此模块使用的 Google Maps V2 API 已被弃用。 * 对于 V3,请考虑使用 pygeocoder:pypi.python.org/pypi/pygeocoder,尽管我不知道该消息是否是最新的。
  • gmaps.elevation(("40.88292", "-98.37342")) 怎么样?
  • 返回同样的错误:(

标签: python google-maps google-api jupyter-notebook


【解决方案1】:

文档说要传入位置列表,可以是纬度坐标的列表/元组。

很有可能:

gmaps.elevation([("40.88292", "-98.37342")]) 

应该可以工作(根据@AMC cmets)

您也可以按照API docs 自己构建 json 请求

from urllib.request import urlopen
import json
latlon = ["40.88292", "-98.37342"]
api_key = 'YOUR_API_KEY'
url = f'https://maps.googleapis.com/maps/api/elevation/json?locations={",".join(latlon)}&key={api_key}'
response = urlopen(url)
result = json.load(response)

结果

{'results': [{'elevation': 568.84423828125,
   'location': {'lat': 40.88292, 'lng': -98.37342},
   'resolution': 4.771975994110107}],
 'status': 'OK'}

【讨论】:

  • 您好!坐标元组列表也是我的第一个建议(检查主帖上的 cmets),但 OP 说他们尝试过,但又遇到了另一个错误。
  • 谢谢你们的帮助。我最终使用了一个不同的模块并让它做我想做的事。我应该刚刚从 getgo 构建了 json 请求。
  • @AMC 你改了名字!很高兴看到你在这里仍然很强大。我记得当你有 400 声望时 XD ......在我的回答中添加了一个注释,我实际上是在引用你的评论,但应该提到它
猜你喜欢
  • 1970-01-01
  • 2013-01-09
  • 2013-09-02
  • 2020-11-30
  • 1970-01-01
  • 1970-01-01
  • 2012-01-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多