如何将两个经纬度浮点数转换为 Google Maps latlng?

Posted

技术标签:

【中文标题】如何将两个经纬度浮点数转换为 Google Maps latlng?【英文标题】:How do I convert two floats of latitude and longitude into Google Maps latlng? 【发布时间】:2019-11-20 12:39:19 【问题描述】:

我有数据框中地方的纬度和经度。我希望使用 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")

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

【问题讨论】:

【参考方案1】:

您的 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)

【讨论】:

这行得通。谢谢!我认为它必须是一个变量。【参考方案2】:

您应该像使用 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)

【讨论】:

【参考方案3】:

也许试试这个?

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

【讨论】:

以上是关于如何将两个经纬度浮点数转换为 Google Maps latlng?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用脚本在 Google 表格中将时间转换为十进制浮点数?

如何把浮点数转换成字符串?

将一个 32 位浮点数转换为两个 16 位 uint 数,然后再次转换回该 32 位浮点数

将字符串转换为浮点数 -> Processing.org

Python - 将 GPS 位置批量转换为经纬度小数

Numpy 错误“无法将字符串转换为浮点数:'Illinois'”