【问题标题】:Finding nearby cities using Google API使用 Google API 查找附近城市
【发布时间】:2019-04-21 15:54:17
【问题描述】:

我想从经过的纬度和经度获取附近的城市。我使用了 geonames 和 geobytes API,但想使用 Google API 来查找附近的城市。

这是我的代码:

def getNearbyCities(self):
    # lat, lon = self.getLatLon()
    # res_url = urlopen('http://gd.geobytes.com/GetNearbyCities?callback=?&radius=100&limit=100&Latitude=' + str(lat) + '&Longitude=' + str(lon))
    res_url = urlopen('http://getnearbycities.geobytes.com/GetNearbyCities?callback=?&radius=100&locationcode=' + str(self.city))

    resp = str(res_url.read())
    print(resp)
    validate_res = resp.split("b'?(")[-1].split(");'")[0]
    validated_res = ast.literal_eval(validate_res)

    cities_nd_distence = []
    for data in validated_res:
        data_tuple = (data[1], data[7])
        if data[1] not in cities_nd_distence:
            cities_nd_distence.append(data_tuple)
    import pprint
    pprint.pprint(cities_nd_distence)
    return cities_nd_distence

【问题讨论】:

  • Google 不提供(至少不通过 Maps API)。使用其他服务或创建您自己的数据源。

标签: python google-maps-api-3 django-rest-framework google-places-api


【解决方案1】:

如果只想根据经纬度获取城市,可以看看https://github.com/coderholic/django-cities

from cities.models import City                                                                                

from django.contrib.gis.geos import Point                                                                     

from django.contrib.gis.db.models.functions import Distance                                                   

p = Point(-118, 34, srid=4326)                                                                                

City.objects.annotate(distance=Distance('location', p)).order_by("distance").first()                          

<City: Hacienda Heights>

【讨论】:

    猜你喜欢
    • 2022-10-08
    • 2011-06-04
    • 1970-01-01
    • 2012-04-27
    • 1970-01-01
    • 2014-07-11
    • 2012-05-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多