如何将两个经度和纬度转换为Google Maps latlng?

时间:2019-07-10 20:36:24

标签: python google-maps latitude-longitude compass-geolocation

我在数据框中具有经度和纬度。我正在寻找使用Google Maps API的邮政编码。现在,我正在尝试编写一个循环来执行此操作,它将无法正常工作。问题是gmaps变量result如何将两个作为我变量的float转换为一个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")

它只是运行而没有任何输出。

3 个答案:

答案 0 :(得分:0)

您的latlong变量未插入target_url字符串中。您需要执行以下操作:

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

答案 1 :(得分:0)

您应该像使用gkey一样使用concatate您的变量。您可以通过多种方式进行操作。

例如:

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)

答案 2 :(得分:0)

也许尝试一下?

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")