def ensure_multipoint(geom): """ Makes sure the parameter passed in looks like a GEOS ``MultiPoint``. """ ensure_geometry(geom) if geom.geom_type != 'MultiPoint': raise SpatialError("Provided geometry '%s' is not a 'MultiPoint'." % geom) return geom
def prepare(self, obj): from haystack.utils.geo import ensure_geometry value = super(GeometryField, self).prepare(obj) if not value: return value value = ensure_geometry(value) value = json.loads(value.geojson) value['type'] = value['type'].lower() return value
def test_ensure_geometry(self): self.assertRaises( SpatialError, ensure_geometry, [38.97127105172941, -95.23592948913574] ) ensure_geometry(GEOSGeometry("POLYGON((-95 38, -96 40, -97 42, -95 38))")) ensure_geometry(GEOSGeometry("POINT(-95.23592948913574 38.97127105172941)")) ensure_geometry(Point(-95.23592948913574, 38.97127105172941))
def test_ensure_geometry(self): self.assertRaises(SpatialError, ensure_geometry, [38.97127105172941, -95.23592948913574]) ensure_geometry( GEOSGeometry("POLYGON((-95 38, -96 40, -97 42, -95 38))")) ensure_geometry( GEOSGeometry("POINT(-95.23592948913574 38.97127105172941)")) ensure_geometry(Point(-95.23592948913574, 38.97127105172941))
def test_ensure_geometry(self): from django.contrib.gis.geos import GEOSGeometry, Point self.assertRaises( SpatialError, ensure_geometry, [38.97127105172941, -95.23592948913574] ) ensure_geometry(GEOSGeometry("POLYGON((-95 38, -96 40, -97 42, -95 38))")) ensure_geometry(GEOSGeometry("POINT(-95.23592948913574 38.97127105172941)")) ensure_geometry(Point(-95.23592948913574, 38.97127105172941))