2016-11-15 2 views
2

여러 다각형의 중심점을 어떻게 결정합니까?전단지에있는 다각형의 중심점 결정

내가 의미하는 것은 첨부 된 그림에 빨간 점으로 표시되는 점입니다. 추 신 : 다각형 수는 다양합니다. 알고리즘은 대부분의 다각형의 중심 인 근사 점을 결정할 수 있어야합니다.

enter image description here

답변

2

당신이 정확하게 원하는에 따라이 몇 가지 방법이 있습니다.

가장 쉬운 방법은 전체적으로 다각형의 중심을 계산하는 것입니다. 지리 공간 소프트웨어의 많은 등 다중 다각형의 무게 중심, 다수의 외부 링과 다각형을 계산 할 수

당신이 리플릿 및 GeoJSON를 사용하는 경우, 내 개인적인 선택은 지오 프로세싱에 대한 예를 Turf.js을 사용하는 것입니다 :

var poly1 = { 
    type: 'Feature', 
    geometry: { 
    type: 'Polygon', 
    coordinates: [[[10, 10], [10, 20], [20, 15]]] 
    } 
}; 

var poly2 = { 
    type: 'Feature', 
    geometry: { 
    type: 'Polygon', 
    coordinates: [[[10, 45], [20, 40], [20, 50]]] 
    } 
}; 

var featCollection = { 
    type: 'FeatureCollection', 
    features: [poly1, poly2] 
} 

L.geoJSON(featCollection).addTo(map) 

// Magic happens here: 
var centroid = turf.centroid(featCollection); 

L.geoJSON(centroid).addTo(map); 

working example으로 볼 수 있습니다.

이제 centroid는 다각형의 밀도의 중심입니다. 고등학교 기하학을 기억하면 lots of centers for something as simple as a triangle이 있으며 그 각각은 고유 한 특성을가집니다.

더 복잡한 폴리곤의 경우에는 some times you don't want the centroid입니다. 측지학을 고려하면 (즉, 지구가 2D 평면이 아니라는 사실) 상황이 좀 더 복잡해집니다.

당신이하고자하는 것에 따라, 중심점을 찾기 위해보다 정교한 해결책을 원할 수도 있지만, 다각형과의 거리를 최소화하는 점 (그 폴리곤에 대한 정점).

+0

대다수의 다각형에 맞게지도의 줌 레벨을 자동으로 조정하려면 어떻게해야합니까? – codejunkie

+1

모든 다각형에 대한 경계를 가져 와서 모든 범위를 확장하는 'L.Bounds'인스턴스를 만듭니다. 전단지 문서를 읽으십시오. 혼자서 간단하게 작성해야합니다. – IvanSanchez

+0

http://stackoverflow.com/questions/16845614/zoom-to-fit-all-markers-in-mapbox-or-leaflet ---> 도와 줬습니다. – codejunkie