7

これを行うための API には何も表示されません: https://docs.djangoproject.com/en/dev/ref/contrib/gis/geoip/#geoip-api

または、リバース ジオコーディングに Google API を使用する必要がありますか?

4

4 に答える 4

7

解決策 - この URL を呼び出して、JSON を解析します。

http://maps.googleapis.com/maps/api/geocode/json?latlng=%f,%f&sensor=false
于 2012-10-19T18:20:34.340 に答える
6

geopy を使用すると、googlev3 を含む複数のジオコーダーを処理できます。

from geopy.geocoders import GoogleV3
geolocator = GoogleV3()
location = geolocator.reverse("52.509669, 13.376294")
print(location.address)
>>> Potsdamer Platz, Mitte, Berlin, 10117, Deutschland, European Union

pipでインストール:

pip install geopy

情報は次の場所にあります: https://github.com/geopy/geopy

于 2015-05-21T05:19:59.083 に答える
2

マップ API を使用できます。Postgis と Django を使用して、マラソンの開始点を PointField に変換するために使用するスニペットを含めました。これで、あなたの道が開けるはずです。

import requests

def geocode(data):
    url_list = []
    for item in data:
        address = ('%s+%s' % (item.city, item.country)).replace(' ', '+')
        url = 'http://maps.googleapis.com/maps/api/geocode/json?address=%s&sensor=false' % address
        url_list.append([item.pk, url])

    json_results = []
    for url in url_list:
        r = requests.get(url[1])
        json_results.append([url[0], r.json])

    result_list = []
    for result in json_results:
        if result[1]['status'] == 'OK':
            lat = float(result[1]['results'][0]['geometry']['location']['lat'])
            lng = float(result[1]['results'][0]['geometry']['location']['lng'])
            marathon = Marathon.objects.get(pk=result[0])
            marathon.point = GEOSGeometry('POINT(%s %s)' % (lng, lat))
            marathon.save()

    return result_list
于 2012-10-18T04:08:38.320 に答える