Beispiel #1
0
    def test_with_envelope_and_srid_big_endian(self):
        expected_loads = {
            'coordinates': [1.0, 1.0],
            'type': 'Point',
            'meta': {
                'srid': 4326
            },
            'crs': {
                'type': 'name',
                'properties': {
                    'name': 'EPSG4326'
                }
            },
            'bbox': (1.0, 1.0, 1.0, 1.0)
        }

        expected_dumps = (b'GP\x00\x02\x00\x00\x10\xe6'
                          b'?\xf0\x00\x00\x00\x00\x00\x00'
                          b'?\xf0\x00\x00\x00\x00\x00\x00'
                          b'?\xf0\x00\x00\x00\x00\x00\x00'
                          b'?\xf0\x00\x00\x00\x00\x00\x00'
                          b'\x00\x00\x00\x00\x01'
                          b'?\xf0\x00\x00\x00\x00\x00\x00'
                          b'?\xf0\x00\x00\x00\x00\x00\x00')

        dumps_result = geopackage.dumps(expected_loads)
        self.assertEqual(expected_dumps, dumps_result)

        loads_result = geopackage.loads(dumps_result)
        self.assertEqual(expected_loads, loads_result)
Beispiel #2
0
    def test_without_envelope_with_srid_little_endian(self):
        gpkg = (  # GPKG header
            b'GP'  # "magic"
            b'\x00'  # version
            b'\x01'  # flags
            b'\xe6\x10\x00\x00'  # SRID
            b'\x01\x01\x00\x00\x00\xf0\x9e\xa0\xa7\x05;#@hZ\xbd\x93\x83GC@'  # WKB geom
        )
        expected = {
            'type': 'Point',
            'coordinates': [9.615277517659223, 38.55870291467437],
            'meta': {
                'srid': 4326
            },
            'crs': {
                'type': 'name',
                'properties': {
                    'name': 'EPSG4326'
                }
            }
        }

        result = geopackage.loads(gpkg)
        self.assertEqual(expected, result)
        self.assertEqual(gpkg, geopackage.dumps(result, big_endian=False))
Beispiel #3
0
    def test_polygon_no_srid_with_envelope_little_endian(self):
        expected_dumps = (b'GP\x00\x03\x00\x00\x00\x00'
                          b'\x00\x00\x00\x00\x00\x004@'
                          b'\x00\x00\x00\x00\x00@e@\x00'
                          b'\x00\x00\x00\x00\x00$@\x00'
                          b'\x00\x00\x00\x00\x80a@\x01'
                          b'\x03\x00\x00\x00\x01\x00\x00'
                          b'\x00\t\x00\x00\x00\x00\x00\x00'
                          b'\x00\x00\x004@\x00\x00\x00\x00'
                          b'\x00\x004@\x00\x00\x00\x00\x00'
                          b'\x00A@\x00\x00\x00\x00\x00\x00'
                          b'_@\x00\x00\x00\x00\x00\x80Q@\x00'
                          b'\x00\x00\x00\x00\x80a@\x00\x00'
                          b'\x00\x00\x00@`@\x00\x00\x00\x00'
                          b'\x00@`@\x00\x00\x00\x00\x00\x80'
                          b'Q@\x00\x00\x00\x00\x00\x00Y@\x00'
                          b'\x00\x00\x00\x00\x80[@\x00\x00'
                          b'\x00\x00\x00\x80Q@\x00\x00\x00'
                          b'\x00\x00@e@\x00\x00\x00\x00\x00'
                          b'\x004@\x00\x00\x00\x00\x00\x80'
                          b'V@\x00\x00\x00\x00\x00\x00$@\x00'
                          b'\x00\x00\x00\x00\x004@\x00\x00'
                          b'\x00\x00\x00\x004@')

        expected_loads = {
            'type':
            'Polygon',
            'coordinates': [[[20.0, 20.0], [34.0, 124.0], [70.0, 140.0],
                             [130.0, 130.0], [70.0, 100.0], [110.0, 70.0],
                             [170.0, 20.0], [90.0, 10.0], [20.0, 20.0]]],
            'bbox': (20.0, 170.0, 10.0, 140.0)
        }

        loads_result = geopackage.loads(expected_dumps)
        self.assertEqual(expected_loads, loads_result)

        dumps_result = geopackage.dumps(loads_result, big_endian=False)
        self.assertEqual(expected_dumps, dumps_result)