여러 다각형의 교차점을 얻고 싶습니다. 파이썬 shapely
패키지를 사용하면 intersection
함수를 사용하여 두 다각형의 교차점을 찾을 수 있습니다 . 여러 다각형의 교집합을 얻는 비슷한 효율적인 기능이 있습니까?
다음은 내가 의미하는 바를 이해하는 코드 스 니펫입니다.
from shapely.geometry import Point
coord1 = ( 0,0 )
point1 = Point(coord1)
circle1 = point1.buffer(1)
coord2 = ( 1,1 )
point2 = Point(coord2)
circle2 = point2.buffer(1)
coord3 = ( 1,0 )
point3 = Point(coord3)
circle3 = point3.buffer(1)
두 서클의 교차점은에서 찾을 수 있습니다 circle1.intersection(circle2)
. 로 세 서클의 교차점을 모두 찾을 수 있습니다 circle1.intersection(circle2).intersection(circle3)
. 그러나이 방법은 점점 더 많은 코드가 필요하기 때문에 많은 수의 다각형에 적용 할 수 없습니다. 임의의 수의 다각형을 가져 와서 그 교차점을 반환하는 함수를 원합니다.
im 생각은 좌표를 사전에 저장하고 itertools 가져 오기 조합에서 사용하면서 반복합니다. 곧 게시하겠습니다
—
ziggy
"그들의 교차점"은 무엇을 의미합니까? 하나 이상의 다른 다각형과 교차 하는 모든 영역 또는 모든 입력이 교차 하는 영역을 의미 합니까?
—
jpmc26
나는 적어도 하나가 아닌 모든 다각형의 교차점을 의미합니다.
—
splinter
위의 내용을 명확히해야합니다 (아마도 출력 예). 나는 대부분의 답변 이 원하는대로 작동 하지 않는다는 것을 확신 합니다. (그리고 몇몇 답변자들이 오해 한 사실은 그 질문이 명확
—
해져야
@ jpmc26 방금 rtree가 사용되는 답변에 업데이트를 추가했습니다. 이 접근 방식은 이제 더 효율적이고 확장 가능합니다. 도움이 되었기를 바랍니다!
—
Antonio Falciano