2014-12-31 2 views
0

Я работаю с Python, Shapely и Fiona. Учитывая наличие двух доступных шейп-файлов, шейп-файл линии и файл формы полигона.Линия против пересечения многоугольников Координаты

Как получить файл формы конечного результата, состоящий из точек пересечения (обозначенных знаками Q) и их соответствующих координат?

enter image description here

+0

[Дополнительные иллюстрации для вопроса] (HTTP: // gis.stackexchange.com/questions/127878/line-vs-polygon-intersection-coordinates) – Akhil

+0

Отредактировал вопрос. Теперь яснее? – Akhil

+0

Я пробовал использовать простое пересечение, используя функцию «пересечения» фигурного (пересечение геометрии) и используя Fiona для записи вывода. – Akhil

ответ

1

Вы должны получить пересечение с внешней стороны многоугольника и линии. Если вместо этого вы используете пересечение с полигоном, результатом будет строка, так как многоугольники имеют область. Кроме того, пересечение может быть строка, если они параллельны, так что вы могли бы также ожидать 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) 
Смежные вопросы