Пример #1
0
    def get(self, request, *args, **kwargs):
        if 'q' in request.GET:
            search_term = request.GET['q']
            geo_levels = request.GET.get('geolevels', None)
            return render_json_to_response(
                {'results': get_locations(search_term, geo_levels)}
            )

        if 'coords' in request.GET:
            # coords=lat,lng&coords=lat,lng
            # we only want the first 3, to limit our outgoing requests
            coords = request.GET.getlist('coords')[:3]

            # unpack
            pairs = [c.split(',', 1) for c in coords if ',' in c]

            places = set()
            for lat, lng in pairs:
                try:
                    places.update(get_locations_from_coords(latitude=lat.strip(), longitude=lng.strip()))
                except SearchException as e:
                    logger.warn("Error looking up places for (%s, %s): %s" % (lat, lng, e.message), exc_info=e)

            ordering = {County: 0, Country: 1}
            places = sorted(places, key=lambda o: [ordering[o.__class__], o.name, o.code])

            return render_json_to_response(
                {'results': [p.as_dict() for p in places]}
            )


        return HttpResponseBadRequest('"q" or "coords" parameter is required')
Пример #2
0
    def get(self, request, *args, **kwargs):
        if "q" in request.GET:
            search_term = request.GET["q"]
            geo_levels = request.GET.get("geolevels", None)
            return render_json_to_response({"results": get_locations(search_term, geo_levels)})

        return HttpResponseBadRequest('"q" parameter is required')
Пример #3
0
    def get(self, request, *args, **kwargs):
        if 'q' in request.GET:
            search_term = request.GET['q']
            geo_levels = request.GET.get('geolevels', None)
            return render_json_to_response(
                {'results': get_locations(search_term, geo_levels)})

        return HttpResponseBadRequest('"q" parameter is required')
Пример #4
0
    def get(self, request, *args, **kwargs):
        if 'q' in request.GET:
            search_term = request.GET['q']
            geo_level = request.GET.get('geolevel', None)
            return render_json_to_response(
                {'results': get_locations(search_term, geo_level)}
            )

        return HttpResponseBadRequest('"q" parameter is required')