Esempio n. 1
0
	def testCreateLinearRing(self):
		cs = geos.CoordinateSequence(4,3)
		cs.setX(0, 7)
		cs.setY(0, 8)
		cs.setZ(0, 9)
		cs.setX(1, 3)
		cs.setY(1, 3)
		cs.setZ(1, 3)
		cs.setX(2, 11)
		cs.setY(2, 15.2)
		cs.setZ(2, 2)
		cs.setX(3, 7)
		cs.setY(3, 8)
		cs.setZ(3, 9)
		
		geom = geos.createLinearRing(cs)
		assert isinstance(geom, geos.LinearRing)
		self.assertEqual('LinearRing', geom.geomType())
		self.assertEqual(geos.GEOS_LINEARRING, geom.typeId())
		
		self.assertEqual(False, geom.isEmpty())
		self.assertEqual(True, geom.isValid())
		self.assertEqual(True, geom.isSimple())
		self.assertEqual(True, geom.isRing())
		self.assertEqual(True, geom.hasZ())
		
		self.assertEqual(1, geom.getNumGeometries())

		coords = geom.getCoordSeq()
		assert isinstance(coords, geos.CoordinateSequence)
		self.assertEqual(7, coords.getX(0))
		self.assertEqual(8, coords.getY(0))
		self.assertEqual(9, coords.getZ(0))
		self.assertEqual(3, coords.getX(1))
		self.assertEqual(3, coords.getY(1))
		self.assertEqual(3, coords.getZ(1))
		self.assertEqual(11, coords.getX(2))
		self.assertEqual(15.2, coords.getY(2))
		self.assertEqual(2, coords.getZ(2))
		self.assertEqual(7, coords.getX(3))
		self.assertEqual(8, coords.getY(3))
		self.assertEqual(9, coords.getZ(3))
		
		self.assertEqual(0, geom.area())
		self.assertEqual(29.228665330091953, geom.length())
Esempio n. 2
0
    def testCreateLinearRing(self):
        cs = geos.CoordinateSequence(4, 3)
        cs.setX(0, 7)
        cs.setY(0, 8)
        cs.setZ(0, 9)
        cs.setX(1, 3)
        cs.setY(1, 3)
        cs.setZ(1, 3)
        cs.setX(2, 11)
        cs.setY(2, 15.2)
        cs.setZ(2, 2)
        cs.setX(3, 7)
        cs.setY(3, 8)
        cs.setZ(3, 9)

        geom = geos.createLinearRing(cs)
        assert isinstance(geom, geos.LinearRing)
        self.assertEqual('LinearRing', geom.geomType())
        self.assertEqual(geos.GEOS_LINEARRING, geom.typeId())

        self.assertEqual(False, geom.isEmpty())
        self.assertEqual(True, geom.isValid())
        self.assertEqual(True, geom.isSimple())
        self.assertEqual(True, geom.isRing())
        self.assertEqual(True, geom.hasZ())

        self.assertEqual(1, geom.getNumGeometries())

        coords = geom.getCoordSeq()
        assert isinstance(coords, geos.CoordinateSequence)
        self.assertEqual(7, coords.getX(0))
        self.assertEqual(8, coords.getY(0))
        self.assertEqual(9, coords.getZ(0))
        self.assertEqual(3, coords.getX(1))
        self.assertEqual(3, coords.getY(1))
        self.assertEqual(3, coords.getZ(1))
        self.assertEqual(11, coords.getX(2))
        self.assertEqual(15.2, coords.getY(2))
        self.assertEqual(2, coords.getZ(2))
        self.assertEqual(7, coords.getX(3))
        self.assertEqual(8, coords.getY(3))
        self.assertEqual(9, coords.getZ(3))

        self.assertEqual(0, geom.area())
        self.assertEqual(29.228665330091953, geom.length())
Esempio n. 3
0
	def testCreatePolygon(self):
		# Polygon shell
		cs = geos.CoordinateSequence(5,2)
		cs.setX(0, 0)
		cs.setY(0, 0)

		cs.setX(1, 0)
		cs.setY(1, 10)
		
		cs.setX(2, 10)
		cs.setY(2, 10)
		
		cs.setX(3, 10)
		cs.setY(3, 0)
		
		cs.setX(4, 0)
		cs.setY(4, 0)
		shell = geos.createLinearRing(cs)
		
		geom = geos.createPolygon(shell)
		assert isinstance(geom, geos.Polygon)
		self.assertEqual('Polygon', geom.geomType())
		self.assertEqual(geos.GEOS_POLYGON, geom.typeId())
		
		self.assertEqual(False, geom.isEmpty())
		self.assertEqual(True, geom.isValid())
		self.assertEqual(True, geom.isSimple())
		self.assertEqual(False, geom.isRing())
		self.assertEqual(True, geom.hasZ())
		
		self.assertEqual(1, geom.getNumGeometries())
		
		exteriorRing = geom.getExteriorRing()
		assert(shell.equals(exteriorRing))
		self.assertEqual(0, geom.getNumInteriorRings())
		
		self.assertRaises(RuntimeError, geom.getInteriorRingN, 1)
		
		self.assertEqual(100, geom.area())
		self.assertEqual(40, geom.length())
Esempio n. 4
0
    def testCreatePolygon(self):
        # Polygon shell
        cs = geos.CoordinateSequence(5, 2)
        cs.setX(0, 0)
        cs.setY(0, 0)

        cs.setX(1, 0)
        cs.setY(1, 10)

        cs.setX(2, 10)
        cs.setY(2, 10)

        cs.setX(3, 10)
        cs.setY(3, 0)

        cs.setX(4, 0)
        cs.setY(4, 0)
        shell = geos.createLinearRing(cs)

        geom = geos.createPolygon(shell)
        assert isinstance(geom, geos.Polygon)
        self.assertEqual('Polygon', geom.geomType())
        self.assertEqual(geos.GEOS_POLYGON, geom.typeId())

        self.assertEqual(False, geom.isEmpty())
        self.assertEqual(True, geom.isValid())
        self.assertEqual(True, geom.isSimple())
        self.assertEqual(False, geom.isRing())
        self.assertEqual(True, geom.hasZ())

        self.assertEqual(1, geom.getNumGeometries())

        exteriorRing = geom.getExteriorRing()
        assert (shell.equals(exteriorRing))
        self.assertEqual(0, geom.getNumInteriorRings())

        self.assertRaises(RuntimeError, geom.getInteriorRingN, 1)

        self.assertEqual(100, geom.area())
        self.assertEqual(40, geom.length())
Esempio n. 5
0
	def testCreatePolygonWithHoles(self):
		# Polygon shell
		cs = geos.CoordinateSequence(5,2)
		cs.setX(0, 0)
		cs.setY(0, 0)

		cs.setX(1, 0)
		cs.setY(1, 10)
		
		cs.setX(2, 10)
		cs.setY(2, 10)
		
		cs.setX(3, 10)
		cs.setY(3, 0)
		
		cs.setX(4, 0)
		cs.setY(4, 0)
		shell = geos.createLinearRing(cs)
		
		# Hole 1
		cs = geos.CoordinateSequence(5,2)
		cs.setX(0, 2)
		cs.setY(0, 2)

		cs.setX(1, 2)
		cs.setY(1, 4)
		
		cs.setX(2, 4)
		cs.setY(2, 4)
		
		cs.setX(3, 4)
		cs.setY(3, 2)
		
		cs.setX(4, 2)
		cs.setY(4, 2)
		hole1 = geos.createLinearRing(cs)
		
		# Hole 2
		cs = geos.CoordinateSequence(5,2)
		cs.setX(0, 6)
		cs.setY(0, 6)

		cs.setX(1, 6)
		cs.setY(1, 8)
		
		cs.setX(2, 8)
		cs.setY(2, 8)
		
		cs.setX(3, 8)
		cs.setY(3, 6)
		
		cs.setX(4, 6)
		cs.setY(4, 6)
		hole2 = geos.createLinearRing(cs)
		
		geom = geos.createPolygon(shell, [hole1, hole2])
		assert isinstance(geom, geos.Polygon)
		self.assertEqual('Polygon', geom.geomType())
		self.assertEqual(geos.GEOS_POLYGON, geom.typeId())
		
		self.assertEqual(False, geom.isEmpty())
		self.assertEqual(True, geom.isValid())
		self.assertEqual(True, geom.isSimple())
		self.assertEqual(False, geom.isRing())
		self.assertEqual(True, geom.hasZ())
		
		self.assertEqual(1, geom.getNumGeometries())
		
		exteriorRing = geom.getExteriorRing()
		assert(shell.equals(exteriorRing))
		
		self.assertEqual(2, geom.getNumInteriorRings())
		assert(hole1.equals(geom.getInteriorRingN(0)))
		assert(hole2.equals(geom.getInteriorRingN(1)))
		
		self.assertEqual(92, geom.area())
		self.assertEqual(56, geom.length())
Esempio n. 6
0
    def testCreatePolygonWithHoles(self):
        # Polygon shell
        cs = geos.CoordinateSequence(5, 2)
        cs.setX(0, 0)
        cs.setY(0, 0)

        cs.setX(1, 0)
        cs.setY(1, 10)

        cs.setX(2, 10)
        cs.setY(2, 10)

        cs.setX(3, 10)
        cs.setY(3, 0)

        cs.setX(4, 0)
        cs.setY(4, 0)
        shell = geos.createLinearRing(cs)

        # Hole 1
        cs = geos.CoordinateSequence(5, 2)
        cs.setX(0, 2)
        cs.setY(0, 2)

        cs.setX(1, 2)
        cs.setY(1, 4)

        cs.setX(2, 4)
        cs.setY(2, 4)

        cs.setX(3, 4)
        cs.setY(3, 2)

        cs.setX(4, 2)
        cs.setY(4, 2)
        hole1 = geos.createLinearRing(cs)

        # Hole 2
        cs = geos.CoordinateSequence(5, 2)
        cs.setX(0, 6)
        cs.setY(0, 6)

        cs.setX(1, 6)
        cs.setY(1, 8)

        cs.setX(2, 8)
        cs.setY(2, 8)

        cs.setX(3, 8)
        cs.setY(3, 6)

        cs.setX(4, 6)
        cs.setY(4, 6)
        hole2 = geos.createLinearRing(cs)

        geom = geos.createPolygon(shell, [hole1, hole2])
        assert isinstance(geom, geos.Polygon)
        self.assertEqual('Polygon', geom.geomType())
        self.assertEqual(geos.GEOS_POLYGON, geom.typeId())

        self.assertEqual(False, geom.isEmpty())
        self.assertEqual(True, geom.isValid())
        self.assertEqual(True, geom.isSimple())
        self.assertEqual(False, geom.isRing())
        self.assertEqual(True, geom.hasZ())

        self.assertEqual(1, geom.getNumGeometries())

        exteriorRing = geom.getExteriorRing()
        assert (shell.equals(exteriorRing))

        self.assertEqual(2, geom.getNumInteriorRings())
        assert (hole1.equals(geom.getInteriorRingN(0)))
        assert (hole2.equals(geom.getInteriorRingN(1)))

        self.assertEqual(92, geom.area())
        self.assertEqual(56, geom.length())