Guest User

Untitled

a guest
Oct 18th, 2017
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.48 KB | None | 0 0
  1. from geopy.geocoders import Nominatim
  2.  
  3. geolocator = Nominatim(timeout=3)
  4. geolocator.reverse('52.5094982,13.3765983')
  5. loc = location.raw
  6. loc_dict = location.raw
  7. print(loc_dict['address'])
  8.  
  9. {'suburb': 'Tiergarten', 'country_code': 'de', 'country': 'Deutschland', 'postcode': '10117', 'attraction': 'Potsdamer Platz', 'road': 'Potsdamer Platz', 'city': 'Berlin', 'city_district': 'Mitte', 'state': 'Berlin'}
  10.  
  11. url(r'^(?P<page_slug>(-?d+(.d+)?),s*(-?d+(.d+)?))/$', views.Coordinates.as_view(),
  12. name='coordinates')
  13.  
  14. class Coordinates(APIView):
  15.  
  16. def get_object(self):
  17. geolocator = Nominatim(timeout=3)
  18. location = geolocator.reverse(self.kwargs['page_slug'])
  19. loc_dict = location.raw
  20. return loc_dict
  21.  
  22. def get(self, request, page_slug):
  23. data = dict()
  24. loc_dict = self.get_object()
  25. data['country'] = loc_dict['address']['country']
  26. if 'city' in loc_dict['address']:
  27. data['city'] = loc_dict['address']['city']
  28. data['city_id'] = City.objects.get(name=loc_dict['address']['city']).id
  29. elif 'state' in loc_dict['address']:
  30. data['city'] = loc_dict['address']['state']
  31. data['city_id'] = City.objects.get(name=loc_dict['address']['state']).id
  32. else:
  33. data['city'] = None
  34. data['country_id'] = Country.objects.get(name=loc_dict['address']['country']).id
  35. return Response(data)
  36.  
  37. {"city":"Berlin", "city_id":"2" ,"country":"Deutschland", "country_id":"3"}
Add Comment
Please, Sign In to add comment