문제

를 갖는 집합(2D)포인트에서 GIS 파일을(도시지도),나를 생성하는 다각형을 정의하는'윤곽 위해'는지도(그 경계).입력 매개 변수가 될 것이 포인트 설정과 최대의 가장자리 길이'입니다.그 다음 출력 해당하는(아마도 비 볼록)polygon.

내가 찾은 최고의 솔루션은 지금까지 했을 생성으로 삼각형 및 그 제거를 외부 가장자리는 더 이상보다 최대의 가장자리 길이 있습니다.후에 모든 외부 가장자리가 짧다,나는 단순히 제거하는 내부 가장자리고 다각형니다.문제입니다,이것은 매우 시간이 많이 소요되는지 궁금하네요가 있다면 더 나은 방법입니다.

도움이 되었습니까?

해결책

종이에 대해 설명 의 효율적 간단한 다각형을 특성화하기 위한 모양의 설정 포인트의 비행기에 제공하는 알고리즘이다.또한 자바 애플릿을 활용하여 동일한 알고리즘 .

다른 팁

하나의 학생들이 우리 실험실에서 사용되는 몇 가지 해당 기술에 대한 자신의 박사학위 논문입니다.내가 믿는 하나 그들은"알파 모양"을 참조에서 다음과 같은 종이:

http://www.cis.rit.edu/people/faculty/kerekes/pdfs/AIPR_2007_Gurram.pdf

종이 제공 몇 가지 추가 참조하 당신을 따를 수 있습니다.

남자 구를 개발했 k 장 가까운 이웃을 결정하는 방법은 오목한 선체의 세트의 포인트는 행동"거의 선형적으로 포인트의 수에".슬프게도 그들의 종이 될 것으로 보인을 아주 잘 지키고 있는 요청 습니다.

좋은 설정 참조 을 포함하는 위고로 이어질 수 있습을 찾는 더 나은 방법.

대답은 여전히 재미있는 다른 사람을 위해:하이 적용될 수 있습 a 변형의 행진 스퀘어 알고리즘, 적용되는,(1)내의 오목한 선체,그리고(2)다음에(예를들면3)다른 나의에 따라 평균밀도 있습니다.늠해야 int 배수의서,서신을 구축 그리드 사용할 수 있는 효율적인 샘플링입니다.이것을 신속하게 찾아 빈 샘플=사각형,샘플은 완전히 내에서"클러스터 클라우드"의 포인트,그리고 그에있는 사이입니다.후자는 다음 범주를 결정하는 데 사용할 수 있습니다 쉽게 많은 온라인을 나타내는 부분의 오목한 선체.

모든 선형 이 방법은 없는 삼각가 필요한지,그것을 사용하지 않는 알파와 모양에서 다른 상업/특허 제공하는 여기에 설명된 대로( http://www.concavehull.com/ )

간단한 솔루션을 걸어서 가장자리 주위의 다각형.주어 현재 가장자리 om 경계를 연결하는 포인트 P0P1,다음 지점 경계에 P2 될 것입니다점과 함께 가장 작은 가능한 곳,

H01 = bearing from P0 to P1
H12 = bearing from P1 to P2
A = fmod( H12-H01+360, 360 )
|P2-P1| <= MaxEdgeLength

다음 설정

P0 <- P1
P1 <- P2

과 반복을 얻을 때까지 다시 시작.

이것은 여전히 O(N^2)그래서 당신을 분류하려 pointlist 니다.제한할 수 있습니다 설정 포인트의를 고려해야에서 각 반복 정렬하는 경우 포인트에 말한,자신의 베어링에서 도시의 중심.

좋은 질문입니다!내가 시도하지 않은 이 밖에서 모든지만,나의 첫 번째 샷이 반복적인 방법:

  1. 집합을 만들 N("포함되지 않"),과 추가 모든 지점에서의 설정을 N.
  2. 선택 3 개 지점에서 무작위로 형성 초기 다각형 P.에서 제거 N.
  3. 어떤 시점에서 다각형 알고리즘 보 점에서 N.에 대한 각 지점에서 N 는 경우,그것은 지금에 포함된 P 에서 제거하 N.한 빨리 당신이 지점을 찾아서는 아직에 포함되지 않 P,계속하여 4 단계입니다.N 경우가 빈,당신은 끝났어.
  4. 호출 시점을 발견 A.라인을 찾 P 가장 가까운,그리고 추가 그것의 중간에.
  5. 3 단계로 돌아

나는 생각한 것입으로 충분히 수행에 좋은 휴리스틱에 대한 초기 3 점이 도움이 될 수 있습니다.

행운을 빕니다!

당신은 그것을 할 수 있습 QGIS 이 플러그인에서;https://github.com/detlevn/QGIS-ConcaveHull-Plugin

에 따라 당신이 그것을 필요로하는 방법과 상호 작용하는 데이터,아마 체크 아웃 가치가 그것이 얼마나 여기서 수행됩니다.

Bing 지도 V8interactive SDK 는 오목한 선체 내에서 옵션을 고급형 작업입니다.

https://www.bing.com/mapspreview/sdkrelease/mapcontrol/isdk/advancedshapeoperations?toWww=1&redig=D53FACBB1A00423195C53D841EA0D14E#JS

내 ArcGIS10.5.1,3D 분석 확장자는 최소 경계 볼륨 도구와 기하학 형태의 오목한 선체,구체,봉투 또는 convex hull.그것은에서 사용할 수 있는 라이센스 수준이다.

오목 선체를 알고리즘은 여기: https://github.com/mapbox/concaveman

빠른 대략적인 솔루션(또한 유용한 볼록한 선체)찾는 북쪽과 남쪽 경계에 대한 각각의 작은 요소 east-west.

에 따라 세부 사항을 만들,당신이 원하는 고정이즈 배열의 상한/하한 경계.각 지점에 대한 계산하는 E-W 열고 그 후 업데이트 상/하 범위에 대한 열입니다.후에 당신은 처리된 모든 점할 수 있는 보간 상한/하한 포인트 사람들을 위해 열을 놓쳤다.

그것은 또한 가치가 있고 미리 확인을 위한 매우 얇은 긴 모양과 결정하는 어떠했을 bin NS 또는 Ew.

으로 격렬하게 채택된 참조,PostGIS 으로 시작 convexhull 다음 동굴에서,당신은 여기에서 볼 수 있습니다.

https://github.com/postgis/postgis/blob/380583da73227ca1a52da0e0b3413b92ae69af9d/postgis/postgis.sql.in#L5819

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top