Вы должны получить пересечение с внешней стороны многоугольника и линии. Если вместо этого вы используете пересечение с полигоном, результатом будет строка, так как многоугольники имеют область. Кроме того, пересечение может быть строка, если они параллельны, так что вы могли бы также ожидать GeometryCollection
Вот что-то в начале:
from shapely.wkt import loads
poly = loads('POLYGON ((140 270, 300 270, 350 200, 300 150, 140 150, 100 200, 140 270))')
line = loads('LINESTRING (370 290, 270 120)')
intersection = poly.exterior.intersection(line)
if intersection.is_empty:
print("shapes don't intersect")
elif intersection.geom_type.startswith('Multi') or intersection.geom_type == 'GeometryCollection':
for shp in intersection:
print(shp)
else:
print(intersection)
[Дополнительные иллюстрации для вопроса] (HTTP: // gis.stackexchange.com/questions/127878/line-vs-polygon-intersection-coordinates) – Akhil
Отредактировал вопрос. Теперь яснее? – Akhil
Я пробовал использовать простое пересечение, используя функцию «пересечения» фигурного (пересечение геометрии) и используя Fiona для записи вывода. – Akhil