コード例 #1
0
ファイル: test_geos.py プロジェクト: ricardoffv/django-pizza
    def test_transform(self):
        "Testing `transform` method."
        orig = GEOSGeometry("POINT (-104.609 38.255)", 4326)
        trans = GEOSGeometry("POINT (992385.4472045 481455.4944650)", 2774)

        # Using a srid, a SpatialReference object, and a CoordTransform object
        # for transformations.
        t1, t2, t3 = orig.clone(), orig.clone(), orig.clone()
        t1.transform(trans.srid)
        t2.transform(gdal.SpatialReference("EPSG:2774"))
        ct = gdal.CoordTransform(gdal.SpatialReference("WGS84"), gdal.SpatialReference(2774))
        t3.transform(ct)

        # Testing use of the `clone` keyword.
        k1 = orig.clone()
        k2 = k1.transform(trans.srid, clone=True)
        self.assertEqual(k1, orig)
        self.assertNotEqual(k1, k2)

        prec = 3
        for p in (t1, t2, t3, k2):
            self.assertAlmostEqual(trans.x, p.x, prec)
            self.assertAlmostEqual(trans.y, p.y, prec)
コード例 #2
0
    def test_transform(self):
        "Testing `transform` method."
        orig = GEOSGeometry('POINT (-104.609 38.255)', 4326)
        trans = GEOSGeometry('POINT (992385.4472045 481455.4944650)', 2774)

        # Using a srid, a SpatialReference object, and a CoordTransform object
        # for transformations.
        t1, t2, t3 = orig.clone(), orig.clone(), orig.clone()
        t1.transform(trans.srid)
        t2.transform(gdal.SpatialReference('EPSG:2774'))
        ct = gdal.CoordTransform(gdal.SpatialReference('WGS84'),
                                 gdal.SpatialReference(2774))
        t3.transform(ct)

        # Testing use of the `clone` keyword.
        k1 = orig.clone()
        k2 = k1.transform(trans.srid, clone=True)
        self.assertEqual(k1, orig)
        self.assertNotEqual(k1, k2)

        prec = 3
        for p in (t1, t2, t3, k2):
            self.assertAlmostEqual(trans.x, p.x, prec)
            self.assertAlmostEqual(trans.y, p.y, prec)
コード例 #3
0
    def apply_to(self, geometry: GEOSGeometry, clone=False) -> GEOSGeometry | None:
        """Transform the geometry using this coordinate reference.

        This method caches the used CoordTransform object

        Every transformation within this package happens through this method,
        giving full control over coordinate transformations.
        """
        if self.srid == geometry.srid:
            # Avoid changes if spatial reference system is identical.
            if clone:
                return geometry.clone()
            else:
                return
        else:
            # Convert using GDAL / proj
            transform = _get_coord_transform(geometry.srid, self._as_gdal())
            return geometry.transform(transform, clone=clone)