Temukan titik potong dari 2 poligon dengan Python
Sep 15 2020
Saya mencoba untuk mendapatkan pointkoordinat perpotongan 2 polygonsdengan Python.
Misalnya titik potong dari dua poligon ( polys2). Untuk tujuan ilustrasi, saya telah menandai titik potong dengan warna hijau.
from shapely.geometry import Polygon,Point
import geopandas
polys1 = geopandas.GeoSeries([Polygon([(0,0), (2,0), (2,2), (0,2)]),
Polygon([(1,1), (3,1), (3,3), (1,3)])])
polys2 = geopandas.GeoSeries([Point([(1,2)]),Point([(2,1)]) ])
df1 = geopandas.GeoDataFrame({'geometry': polys1, 'df1':[1,2]})
df2 = geopandas.GeoDataFrame({'geometry': polys2, 'df2':[1,2]})
ax = df1.plot(color='red', alpha = 0.5)
df2.plot(ax=ax, color='green', alpha=0.5);
Apa cara terbaik untuk menemukan titik perpotongan ini dengan Python?
Jawaban
10 KadirŞahbaz Sep 15 2020 at 01:39
Gunakan perpotongan batas poligon. Dalam kasus Anda, ia mengembalikan titik berpotongan sebagai multipoint.
geom1 = df1.geometry[0]
geom2 = df1.geometry[1]
points = geom1.boundary.intersection(geom2.boundary) # multipoint
points = list(points) # point list
print(points)
#[<shapely.geometry.point.Point at ...>,
# <shapely.geometry.point.Point at ...>]
Selalu Menjadi Ancaman: Mengapa Orang Berkulit Coklat dan Hitam Tidak Bisa Nyaman di Amerika Serikat
Jana Duggar: Semua yang Dia Katakan Tentang Cinta dan Jendela 5 Tahunnya untuk Menemukan 'Yang Satu'