Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from geopy.geocoders import Nominatim
- geolocator = Nominatim(timeout=3)
- geolocator.reverse('52.5094982,13.3765983')
- loc = location.raw
- loc_dict = location.raw
- print(loc_dict['address'])
- {'suburb': 'Tiergarten', 'country_code': 'de', 'country': 'Deutschland', 'postcode': '10117', 'attraction': 'Potsdamer Platz', 'road': 'Potsdamer Platz', 'city': 'Berlin', 'city_district': 'Mitte', 'state': 'Berlin'}
- url(r'^(?P<page_slug>(-?d+(.d+)?),s*(-?d+(.d+)?))/$', views.Coordinates.as_view(),
- name='coordinates')
- class Coordinates(APIView):
- def get_object(self):
- geolocator = Nominatim(timeout=3)
- location = geolocator.reverse(self.kwargs['page_slug'])
- loc_dict = location.raw
- return loc_dict
- def get(self, request, page_slug):
- data = dict()
- loc_dict = self.get_object()
- data['country'] = loc_dict['address']['country']
- if 'city' in loc_dict['address']:
- data['city'] = loc_dict['address']['city']
- data['city_id'] = City.objects.get(name=loc_dict['address']['city']).id
- elif 'state' in loc_dict['address']:
- data['city'] = loc_dict['address']['state']
- data['city_id'] = City.objects.get(name=loc_dict['address']['state']).id
- else:
- data['city'] = None
- data['country_id'] = Country.objects.get(name=loc_dict['address']['country']).id
- return Response(data)
- {"city":"Berlin", "city_id":"2" ,"country":"Deutschland", "country_id":"3"}
Add Comment
Please, Sign In to add comment