Google Повышение API дает ошибку при передаче аргументов - PullRequest
0 голосов
/ 25 февраля 2020

Я пытаюсь получить высоту из файла Excel, используя pandas для чтения файла и блокнота 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

Я пытался использовать тонну различных вариаций координат в качестве аргументов, но она всегда возвращает эту ошибку.

1 Ответ

0 голосов
/ 25 февраля 2020

Документы говорят, что передают список местоположений, который может быть списком / кортежем координат латлона.

Скорее всего:

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

должно работать (согласно @ AM C комментариев)

вы можете создать запрос json самостоятельно, следуя API документам

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'}
...