Example #1
0
def test_overlaps_attr_multilinestring():
    result = parse(
        {
            "op": "s_overlaps",
            "args": [
                {"property": "geometry"},
                {
                    "type": "MultiLineString",
                    "coordinates": [[[1, 1], [2, 2]], [[0, 3], [1, 1]]],
                    "bbox": [0.0, 1.0, 2.0, 3.0],
                },
            ],
        }
    )
    assert result == ast.GeometryOverlaps(
        ast.Attribute("geometry"),
        values.Geometry(
            normalize_geom(
                geometry.MultiLineString(
                    [
                        geometry.LineString([(1, 1), (2, 2)]),
                        geometry.LineString([(0, 3), (1, 1)]),
                    ]
                ).__geo_interface__
            ),
        ),
    )
Example #2
0
 def test_multilinestring(self):
     ml = geometry.MultiLineString([[[0.0, 0.0], [1.0, 2.0]]])
     ml1 = geometry.MultiLineString(ml)
     self.assertEqual(ml.geoms[0].coords, ((0.0, 0.0), (1.0, 2.0)))
     self.assertEqual(ml.bounds, (0.0, 0.0, 1.0, 2.0))
     l = geometry.LineString([(0, 0), (1, 1)])
     l1 = geometry.LineString([(0.0, 0.0), (1.0, 1.0), (2.0, 2.0)])
     ml2 = geometry.MultiLineString([l, l1])
     self.assertEqual(ml2.geoms[0].coords, ((0.0, 0.0), (1.0, 1.0)))
     self.assertEqual(ml2.geoms[1].coords,
                      ((0.0, 0.0), (1.0, 1.0), (2.0, 2.0)))
     self.assertEqual(len(ml2), 2)
     ml3 = geometry.MultiLineString(l)
     self.assertEqual(ml3.geoms[0].coords, ((0.0, 0.0), (1.0, 1.0)))
     pt = geometry.Point(0, 1)
     self.assertRaises(TypeError, geometry.MultiLineString, pt)
     self.assertRaises(TypeError, geometry.MultiLineString, 0)
Example #3
0
def test_overlaps_attr_multilinestring():
    result = parse('OVERLAPS(geometry, MULTILINESTRING((1 1,2 2),(0 3,1 1)))')
    assert result == ast.GeometryOverlaps(
        ast.Attribute('geometry'),
        values.Geometry(
            geometry.MultiLineString([
                geometry.LineString([(1, 1), (2, 2)]),
                geometry.LineString([(0, 3), (1, 1)]),
            ]).__geo_interface__, ),
    )
Example #4
0
 def setUp(self):
     self.geometry = geometry._Geometry()
     self.point = geometry.Point(0, 1)
     self.linestring = geometry.LineString([[0, 0], [1, 0], [1, 1]])
     self.linearring = geometry.LinearRing([[0, 0], [1, 0], [1, 1], [0, 0]])
     self.coords_1 = ((0., 0.), (0., 1.), (1., 1.), (1., 0.), (0., 0.))
     self.polygon = geometry.Polygon(self.coords_1)
     self.multipoint = geometry.MultiPoint([[0.0, 0.0], [1.0, 2.0]])
     self.multiline = geometry.MultiLineString([[[0.0, 0.0], [1.0, 2.0]]])
     self.multipoly = geometry.MultiPolygon([
         (((0.0, 0.0), (0.0, 1.0), (1.0, 1.0), (1.0, 0.0)),
          [((0.1, 0.1), (0.1, 0.2), (0.2, 0.2), (0.2, 0.1))])
     ])
     self.geo_collect = geometry.GeometryCollection(
         [self.point, self.linestring, self.linearring])
     self.feature = geometry.Feature(self.point, {'a': 1, 'b': 2})
     self.feature_list = [self.feature, self.feature]
     self.fc = geometry.FeatureCollection(self.feature_list)
Example #5
0
def test_crosses_attr_multilinestring():
    result = parse({
        "crosses": [
            {"property": "geometry"},
            {
                "type": "MultiLineString",
                "coordinates": [[[1, 1], [2, 2]], [[0, 3], [1, 1]]],
                "bbox": [0.0, 1.0, 2.0, 3.0]
            },
        ]
    })
    assert result == ast.GeometryCrosses(
        ast.Attribute('geometry'),
        values.Geometry(
            normalize_geom(
                geometry.MultiLineString([
                    geometry.LineString([(1, 1), (2, 2)]),
                    geometry.LineString([(0, 3), (1, 1)]),
                ]).__geo_interface__
            )
        ),
    )
Example #6
0
 def test_dict_asshape(self):
     f = geometry.MultiLineString([[[0.0, 0.0], [1.0, 2.0]]])
     s = geometry.as_shape(f.__geo_interface__)
     self.assertEqual(f.__geo_interface__, s.__geo_interface__)
Example #7
0
 def test_multilinestring(self):
     f = geometry.MultiLineString([[[0.0, 0.0], [1.0, 2.0]]])
     s = geometry.as_shape(f)
     self.assertEqual(f.__geo_interface__, s.__geo_interface__)
     self.assertEqual((0, 0, 1, 2), f.bounds)