예제 #1
0
def test_line_interpolate_point_empty(geom, normalized):
    # These geometries segfault in some versions of GEOS (in 3.8.0, still
    # some of them segfault). Instead, we patched this to return POINT EMPTY.
    # This matches GEOS 3.8.0 behavior on simple empty geometries.
    assert_geometries_equal(
        shapely.line_interpolate_point(geom, 0.2, normalized=normalized),
        empty_point)
예제 #2
0
def test_line_interpolate_point_geom_array():
    actual = shapely.line_interpolate_point(
        [line_string, linear_ring, multi_line_string], -1)
    assert_geometries_equal(actual[0], shapely.Geometry("POINT (1 0)"))
    assert_geometries_equal(actual[1], shapely.Geometry("POINT (0 1)"))
    assert_geometries_equal(actual[2],
                            shapely.Geometry("POINT (0.5528 1.1056)"),
                            tolerance=0.001)
예제 #3
0
    def interpolate(self, distance, normalized=False):
        """Return a point at the specified distance along a linear geometry

        Negative length values are taken as measured in the reverse
        direction from the end of the geometry. Out-of-range index
        values are handled by clamping them to the valid range of values.
        If the normalized arg is True, the distance will be interpreted as a
        fraction of the geometry's length.
        """
        return shapely.line_interpolate_point(self,
                                              distance,
                                              normalized=normalized)
예제 #4
0
def test_line_interpolate_point_nan():
    assert shapely.line_interpolate_point(line_string, np.nan) is None
예제 #5
0
def test_line_interpolate_point_none():
    assert shapely.line_interpolate_point(None, 0.2) is None
예제 #6
0
def test_line_interpolate_point_invalid_type(geom, normalized):
    with pytest.raises(TypeError):
        assert shapely.line_interpolate_point(geom, 0.2, normalized=normalized)
예제 #7
0
def test_line_interpolate_point_float_array():
    actual = shapely.line_interpolate_point(line_string, [0.2, 1.5, -0.2])
    assert_geometries_equal(actual[0], shapely.Geometry("POINT (0.2 0)"))
    assert_geometries_equal(actual[1], shapely.Geometry("POINT (1 0.5)"))
    assert_geometries_equal(actual[2], shapely.Geometry("POINT (1 0.8)"))
예제 #8
0
def test_line_interpolate_point_geom_array_normalized():
    actual = shapely.line_interpolate_point(
        [line_string, linear_ring, multi_line_string], 1, normalized=True)
    assert_geometries_equal(actual[0], shapely.Geometry("POINT (1 1)"))
    assert_geometries_equal(actual[1], shapely.Geometry("POINT (0 0)"))
    assert_geometries_equal(actual[2], shapely.Geometry("POINT (1 2)"))