在与 Shapely 合作时,我遇到了一个奇怪的问题。有两个点 p1 和 p2,其中第一个点属于多边形,第二个点不属于多边形。当我尝试查找包含这两个点作为端点的 LineString 与多边形边界线之间的交点时,我收到消息称未找到交点。我想知道,怎么可能?
from shapely.geometry import Polygon as SPolygon, Point, LineString
p1 = Point(5.414213562373095, 2.585786437626905)
p2 = Point(15.17279752753168, -7.172797527531679)
l = LineString([p1, p2])
l1 = LineString([(2, 2), (2, 6)])
l2 = LineString([(2, 6), (6, 6)])
l3 = LineString([(6, 6), (6, 2)])
l4 = LineString([(6, 2), (2, 2)])
sp = SPolygon([(2, 2), (2, 6), (6, 6), (6, 2)])
print "Polygon contains p1:", sp.contains(p1)
print "Polygon contains p2:", sp.contains(p2)
for i, line in enumerate((l1, l2, l3, l4)): …Run Code Online (Sandbox Code Playgroud)