У кого-нибудь есть опыт геокодирования с использованием django-gmapi? - PullRequest
1 голос
/ 16 ноября 2011

Автор сказал: версия 3 веб-службы геокодирования Google также реализована для дальнейшего включения ненавязчивого подхода к JavaScript Однако я не могу найти никаких примеров на их сайтах. Кто-нибудь использовал это раньше?

1 Ответ

0 голосов
/ 16 ноября 2011

Вот быстрый пример. Я не использовал django-gmapi раньше, так что это может быть не лучшим подходом.

>>> # import the Geocoder class and instantiate it
>>> from gmapi.maps import Geocoder
>>> geocoder = Geocoder()
>>> # Let's geocode the Stack Exchange address!
>>> stack_exchange_hq = "One Exchange Plaza, 26th Floor, New York, NY"
>>> results, status_code = geocoder.geocode({'address': stack_exchange_hq })
>>> print results
{'address_components': [{'long_name': '1',
                         'short_name': '1',
                         'types': ['street_number']},
                        {'long_name': 'Exchange Plaza',
                         'short_name': 'Exchange Plaza',
                         'types': ['route']},
                        {'long_name': 'Downtown',
                         'short_name': 'Downtown',
                         'types': ['neighborhood', 'political']},
                        {'long_name': 'Manhattan',
                         'short_name': 'Manhattan',
                         'types': ['sublocality', 'political']},
                        {'long_name': 'New York',
                         'short_name': 'New York',
                         'types': ['locality', 'political']},
                        {'long_name': 'New York',
                         'short_name': 'New York',
                         'types': ['administrative_area_level_2',
                                   'political']},
                        {'long_name': 'New York',
                         'short_name': 'NY',
                         'types': ['administrative_area_level_1',
                                   'political']},
                        {'long_name': 'United States',
                         'short_name': 'US',
                         'types': ['country', 'political']},
                        {'long_name': '10006',
                         'short_name': '10006',
                         'types': ['postal_code']}],
 'formatted_address': '1 Exchange Plaza, New York, NY 10006, USA',
 'geometry': {'location': {'arg': [40.707183, -74.013402], 'cls': 'LatLng'},
              'location_type': 'ROOFTOP',
              'viewport': {'arg': [{'arg': [40.705834, -74.014751],
                                    'cls': 'LatLng'},
                                   {'arg': [40.708532, -74.012053],
                                    'cls': 'LatLng'}],
                           'cls': 'LatLngBounds'}},
 'partial_match': True,
 'types': ['street_address']}

>>> # look at the first (and only) result
>>> result = results[0]
>>> lat, lng = result['geometry']['location']['arg']
>>> print lat, lng
40.707183 -74.013402

Вставьте это обратно в Google Maps, и вы получите Один Exchange Plaza , как мы хотели.

Примечание. Я не вижу никаких ошибок при разборе результатов выше. Ваше приложение, вероятно, должно кэшировать результаты в базе данных, чтобы загрузка страниц не замедлялась запросами геокодирования и чтобы вы не выходили за пределы API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...