def test_merge_with_geometry(self):
     other = Geometry(OGRGeometry('MULTIPOLYGON (((5 0,5 3,2 0,5 0)))'))
     geometry = Geometry(
         OGRGeometry('MULTIPOLYGON (((0 0,0 5,5 5,0 0)))')).merge(other)
     self.assertIsInstance(geometry, Geometry)
     self.assertEqual(geometry.geometry.geom_name, 'MULTIPOLYGON')
     self.assertEqual(
         geometry.wkt,
         'MULTIPOLYGON (((0 0,0 5,5 5,0 0)),((5 0,5 3,2 0,5 0)))')
 def test_simplify(self):
     geometry = Geometry(
         OGRGeometry('MULTIPOLYGON (((0 0,0.0001 0.0001,0 5,5 5,0 0)))')
     ).simplify()
     self.assertIsInstance(geometry, Geometry)
     self.assertEqual(geometry.geometry.geom_name, 'MULTIPOLYGON')
     self.assertEqual(geometry.wkt, 'MULTIPOLYGON (((0 0,0 5,5 5,0 0)))')
 def test_cascaded_union(self):
     geometry = Geometry(
         OGRGeometry(
             'MULTIPOLYGON (((0 0,0 5,5 5,0 0)),((0 0,5 0,5 5,0 0)))')
     ).cascaded_union()
     self.assertIsInstance(geometry, Geometry)
     self.assertEqual(geometry.geometry.geom_name, 'MULTIPOLYGON')
     self.assertEqual(geometry.wkt,
                      'MULTIPOLYGON (((0 0,0 5,5 5,5 0,0 0)))')
 def test_transform_multipolygon(self):
     geometry = Geometry(
         OGRGeometry('MULTIPOLYGON (((0 0,0 5,5 5,0 0)))')).transform(
             SpatialReference(26917))
     self.assertIsInstance(geometry, Geometry)
     self.assertEqual(geometry.geometry.geom_name, 'MULTIPOLYGON')
     self.assertEqual(
         geometry.wkt,
         'MULTIPOLYGON (((-85.488743884706892 0.0,-85.488743884708271 0.000045096879048,-85.488699089723454 0.000045096881835,-85.488743884706892 0.0)))'
     )
    def test_unary_union(self):
        boundary = Boundary(
            shape='MULTIPOLYGON (((0 0,0 5,2.5 5.0001,5 5,0 0)))')
        boundary.unary_union(
            Geometry(OGRGeometry('MULTIPOLYGON (((0 0,5 0,5 5,0 0)))')))

        self.assertEqual(boundary.shape.ogr.wkt,
                         'MULTIPOLYGON (((5 5,5 0,0 0,0 5,2.5 5.0001,5 5)))')
        self.assertEqual(boundary.simple_shape.ogr.wkt,
                         'MULTIPOLYGON (((5 5,5 0,0 0,0 5,5 5)))')
예제 #6
0
 def test_transform_multipolygon(self):
     geometry = Geometry(
         OGRGeometry('MULTIPOLYGON (((0 0,0 5,5 5,0 0)))')).transform(
             SpatialReference(26917))
     self.assertIsInstance(geometry, Geometry)
     self.assertEqual(geometry.geometry.geom_name, 'MULTIPOLYGON')
     assertRegex(
         self, geometry.wkt,
         r'MULTIPOLYGON \(\(\(-85.488743884\d{6} 0.0,-85.488743884\d{6} 0.000045096\d{6},-85.488699089\d{6} 0.000045096\d{6},-85.488743884\d{6} 0.0\)\)\)'
     )
    def test_merge(self):
        boundary = Boundary(
            shape='MULTIPOLYGON (((0 0,0 5,2.5 5.0001,5 5,0 0)))',
            simple_shape='MULTIPOLYGON (((0 0,0 5,5 5,0 0)))')
        boundary.merge(
            Geometry(
                OGRGeometry('MULTIPOLYGON (((0 0,5 0,5.0001 2.5,5 5,0 0)))')))

        self.assertEqual(
            boundary.shape.ogr.wkt,
            'MULTIPOLYGON (((0 0,0 5,2.5 5.0001,5 5,0 0)),((0 0,5 0,5.0001 2.5,5 5,0 0)))'
        )
        self.assertEqual(
            boundary.simple_shape.ogr.wkt,
            'MULTIPOLYGON (((0 0,0 5,5 5,0 0)),((0 0,5 0,5 5,0 0)))')
 def test_centroid(self):
     geometry = Geometry(OGRGeometry('MULTIPOLYGON (((0 0,0 5,5 5,0 0)))'))
     self.assertEqual(geometry.centroid.ogr.wkt,
                      'POINT (1.666666666666667 3.333333333333333)')
 def test_wkt(self):
     geometry = Geometry(OGRGeometry('MULTIPOLYGON (((0 0,0 5,5 5,0 0)))'))
     self.assertEqual(geometry.wkt, 'MULTIPOLYGON (((0 0,0 5,5 5,0 0)))')
 def test_transform_nonpolygon(self):
     self.assertRaisesRegexp(
         ValueError,
         r'\AThe geometry is a Point but must be a Polygon or a MultiPolygon\.\Z',
         Geometry(OGRGeometry('POINT (0 0)')).transform,
         SpatialReference(26917))
 def test_init_with_geometry(self):
     geometry = OGRGeometry('MULTIPOLYGON (((0 0,0 5,5 5,0 0)))')
     self.assertEqual(Geometry(Geometry(geometry)).geometry, geometry)
 def test_str(self):
     wkt = 'MULTIPOLYGON (((0 0,0 5,5 5,0 0)))'
     self.assertEqual(str(Geometry(OGRGeometry(wkt))), wkt)
 def test_extent(self):
     geometry = Geometry(OGRGeometry('MULTIPOLYGON (((0 0,0 5,5 5,0 0)))'))
     self.assertEqual(geometry.extent, (0.0, 0.0, 5.0, 5.0))
 def test_centroid(self):
     geometry = Geometry(OGRGeometry('MULTIPOLYGON (((0 0,0 5,5 5,0 0)))'))
     self.assertRegex(geometry.centroid.ogr.wkt, r'\APOINT \(1\.6666666666666+7 3\.33333333333333+\)\Z')