Пример #1
0
    def geo_search(self, location):
        """
            Method to filter videos based on their geo-information
        """
        if location == 'true':
            return self.filter(has_location="1")

        if location == 'false':
            return self.filter(has_location="0")

        parts = location.split("__")
        if not len(parts) >= 3:
            raise BadSearchGeoFormatException(
                "Location must be of format {lat}__{lon}__{radius}")
        lat, lon, radius = map(float, parts[:3])

        radius *= MILES_TO_METERS_FACTOR

        return self.filter(
            has_location="1",
            location__geo=GeoQueryArguments(lat, lon, radius))
Пример #2
0
 def test_geosearch_gte(self):
     query = Query(FakeGeoDocument)
     query.add_q(Q(my_loc__geo_gte=GeoQueryArguments(3.14, 6.28, 20)))
     self.assertEqual(
         u"(distance(my_loc, geopoint(3.140000, 6.280000)) >= 20)",
         unicode(query))