def test_intersection(self): l = session.query(Lake).filter(Lake.lake_name=='Lake Blue').one() s = session.query(Spot).get(4) eq_(session.scalar(functions.wkt(l.lake_geom.intersection(s.spot_location, tolerance, auto_diminfo=False))), None) l = session.query(Lake).filter(Lake.lake_name=='Lake White').one() r = session.query(Road).filter(Road.road_name=='Paul St').one() eq_(session.scalar(functions.wkt(l.lake_geom.intersection(r.road_geom))), u'LINESTRING (-88.1430664921296 42.6255530821991, -88.114084510211 42.6230683849207)') ok_(session.query(Lake).filter(functions.equals(Lake.lake_geom.intersection(r.road_geom), WKTSpatialElement('LINESTRING(-88.1430664921296 42.6255530821991, -88.114084510211 42.6230683849207)'))).first() is not None)
def test_convex_hull(self): r = session.query(Road).filter(Road.road_name=='Graeme Ave').one() eq_(session.scalar(functions.wkt(r.road_geom.convex_hull)), u'POLYGON ((-88.5477708728477 42.6988853969538, -88.5912422100661 43.1871019533972, -88.6029460317718 43.0884554581896, -88.6096339299412 42.9697452675198, -88.5477708728477 42.6988853969538))') # Oracle does not support ConvexHull for points ok_(session.query(Spot).filter(functions.equals(Spot.spot_location.convex_hull, WKTSpatialElement('POINT(-88.5945861592357 42.9480095987261)'))).first() is None) eq_(session.scalar(functions.wkt(functions.convex_hull('LINESTRING(0 0, 1 1, 1 0)', diminfo_))), u'POLYGON ((0.999999915732742 8.48487373222706E-8, 0.999999915755202 0.999999915201249, 8.4273559349594E-8 8.48422467917753E-8, 0.999999915732742 8.48487373222706E-8))')
def test_equals(self): r1 = session.query(Road).filter(Road.road_name=='Jeff Rd').one() r2 = session.query(Road).filter(Road.road_name=='Peter Rd').one() r3 = session.query(Road).filter(Road.road_name=='Paul St').one() equal_roads = session.query(Road).filter(Road.road_geom.equals(r1.road_geom)).all() ok_(r1 in equal_roads) ok_(r2 in equal_roads) ok_(r3 not in equal_roads) ok_(session.query(Spot).filter(Spot.spot_location.equals(WKTSpatialElement('POINT(-88.5945861592357 42.9480095987261)'))).first() is not None) eq_(session.scalar(functions.equals('POINT(-88.5945861592357 42.9480095987261)', 'POINT(-88.5945861592357 42.9480095987261)')), True)