Как преобразовать два значения широты и долготы в значения Google Maps? - PullRequest
0 голосов
/ 10 июля 2019

У меня есть широта и долгота мест в кадре данных. Я хочу получить почтовый индекс с помощью Google Maps API. Сейчас я пытаюсь написать цикл для этого, и он не будет работать. Проблема в переменной gmaps latlng Как получить два числа с плавающей точкой, которые являются моими переменными, в одну переменную latlng?

Я успешно сделал это, я ввел «жесткий код» в координатах.

for index, row in bike_df.iterrows():

    lat = row["Starting Station Latitude"]
    long = row["Starting Station Longitude"]


    target_url = ('https://maps.googleapis.com/maps/api/geocode/json?'
              'latlng=34.052898,-118.241562&key={0}').format(gkey)
    response = requests.get(target_url).json()

    try:
        print(response['results'][0]['address_components'][7]['long_name'])
    except:
        print(f"Could not {index} find zip")
for index, row in bike_df.iterrows():

    lat = row["Starting Station Latitude"]
    long = row["Starting Station Longitude"]


    target_url = ('https://maps.googleapis.com/maps/api/geocode/json?'
              'latlng=lat,long&key={0}').format(gkey)
    response = requests.get(target_url).json()

    try:
        print(response['results'][0]['address_components'][7] . 
         ['long_name'])
    except:
        print(f"Could not {index} find zip")

Он просто работает и работает без вывода.

Ответы [ 3 ]

0 голосов
/ 10 июля 2019

Вы должны использовать, как и в случае с gkey, конкататацию вашей переменной. Вы можете сделать это несколькими способами.

Например:

target_url = ('https://maps.googleapis.com/maps/api/geocode/json?'
          'latlng='+str(lat)+','+str(long)+'&key={0}').format(gkey)

или что-то вроде

target_url = ('https://maps.googleapis.com/maps/api/geocode/json?latlng={0},{1}&key={2}').format(lat, long, gkey)
0 голосов
/ 11 июля 2019

Может быть, попробовать это?

import pandas as pd

df = pd.DataFrame({'lat':[34.052898,34.052898,34.052898],
     'long':[-118.241562,-118.241562,-118.241562]})

df

for index, row in df.iterrows():

    latlng = lat + long

    print(latlng)

[34.052898, -118.241562] [34.052898, -118.241562] [34.052898, -118.241562]

lat = row["Starting Station Latitude"]
    long = row["Starting Station Longitude"]


    target_url = ('https://maps.googleapis.com/maps/api/geocode/json?'
              'latlng=lat,long&key={0}').format(gkey)
    response = requests.get(target_url).json()

    try:
        print(response['results'][0]['address_components'][7] . 
         ['long_name'])
    except:
        print(f"Could not {index} find zip")
0 голосов
/ 10 июля 2019

Ваши переменные lat и long не вставляются в строку target_url.Вам нужно будет сделать что-то вроде:

target_url = ('https://maps.googleapis.com/maps/api/geocode/json?'
          'latlng={lat},{long}&key={gkey}').format(lat=lat,long=long,gkey=gkey)
...