コード例 #1
0
    def get(self, request, *args, **kwargs):
        geo_levels = request.GET.get('geolevels', None)
        geo_version = request.GET.get('geo_version', None)
        if geo_levels:
            geo_levels = [lev.strip() for lev in geo_levels.split(',')]
            geo_levels = [lev for lev in geo_levels if lev]

        if 'q' in request.GET:
            search_term = request.GET['q']
            places = geo_data.get_locations(search_term, geo_levels,
                                            geo_version)
            return render_json_to_response(
                {'results': [p.as_dict() for p in places]})

        elif 'coords' in request.GET and ',' in request.GET['coords']:
            lat, lon = self.request.GET['coords'].split(',', 1)
            try:
                lat = float(lat)
                lon = float(lon)
            except ValueError as e:
                return HttpResponseBadRequest('bad parameter: %s' % e.message)

            places = geo_data.get_locations_from_coords(latitude=lat,
                                                        longitude=lon,
                                                        levels=geo_levels,
                                                        version=geo_version)
            return render_json_to_response(
                {'results': [p.as_dict() for p in places]})

        else:
            return HttpResponseBadRequest(
                '"q" or "coords" parameter is required')
コード例 #2
0
def locate(request):
    lat = request.GET.get('lat', None)
    lon = request.GET.get('lon', None)
    nope = False

    if lat and lon:
        place = None
        places = geo_data.get_locations_from_coords(latitude=lat, longitude=lon)

        if places:
            place = places[0]

            # if multiple, prefer the metro/local municipality if available
            if len(places) > 1:
                places = [p for p in places if p.geo_level == 'municipality']
                if places:
                    place = places[0]

            return redirect(reverse('geography_detail', kwargs={'geography_id': place.geoid}))
        nope = True

    return render_to_response('locate.html', {
        'nope': nope,
        'lat': lat,
        'lon': lon,
    })
コード例 #3
0
ファイル: views.py プロジェクト: DavidLemayian/wazimap
    def get(self, request, *args, **kwargs):
        geo_levels = request.GET.get('geolevels', None)
        geo_version = request.GET.get('geo_version', None)
        if geo_levels:
            geo_levels = [lev.strip() for lev in geo_levels.split(',')]
            geo_levels = [lev for lev in geo_levels if lev]

        if 'q' in request.GET:
            search_term = request.GET['q']
            places = geo_data.get_locations(search_term, geo_levels, geo_version)
            return render_json_to_response(
                {'results': [p.as_dict() for p in places]}
            )

        elif 'coords' in request.GET and ',' in request.GET['coords']:
            lat, lon = self.request.GET['coords'].split(',', 1)
            try:
                lat = float(lat)
                lon = float(lon)
            except ValueError as e:
                return HttpResponseBadRequest('bad parameter: %s' % e.message)

            places = geo_data.get_locations_from_coords(latitude=lat, longitude=lon, levels=geo_levels, version=geo_version)
            return render_json_to_response({'results': [p.as_dict() for p in places]})

        else:
            return HttpResponseBadRequest('"q" or "coords" parameter is required')
コード例 #4
0
ファイル: views.py プロジェクト: aidanr67/wazimap
    def get_context_data(self, *args, **kwargs):
        page_context = {}
        lat = self.request.GET.get('lat', None)
        lon = self.request.GET.get('lon', None)

        if lat and lon:
            places = geo_data.get_locations_from_coords(latitude=lat, longitude=lon)
            page_context.update({
                'location': {
                    'lat': lat,
                    'lon': lon
                },
                'places': places
            })

        return page_context
コード例 #5
0
    def get_context_data(self, *args, **kwargs):
        page_context = {}
        lat = self.request.GET.get('lat', None)
        lon = self.request.GET.get('lon', None)

        if lat and lon:
            places = geo_data.get_locations_from_coords(latitude=lat,
                                                        longitude=lon)
            page_context.update({
                'location': {
                    'lat': lat,
                    'lon': lon
                },
                'places': places
            })

        return page_context