2014-10-15 7 views
2

javasvipt를 사용하여 ersi 맵에 마커를 표시하는 웹 페이지를 만들었습니다.javascript를 사용하여 esri multipoint에서 중심점 얻기

Data: 
MapNorth MapEast 
439624 504743 
439622 504736 
439722 504775 
439738 504739 
439715 504774 
439734 504739 

자바 스크립트 코드 : 위의 코드는 다음지도에 플롯 마커이며, 무엇을

var points = data.map(function(x){ 
        return [x.MapEast, x.MapNorth]; 
       }); 

       var myMultiPoint = {"geometry":{"points":points,"spatialReference":27700},"symbol":{"color":[255,255,255,64], 
       "size":6,"angle":0,"xoffset":0,"yoffset":0,"type":"esriSMS","style":"esriSMSCircle", 
       "outline":{"color":[0,0,0,255],"width":6,"type":"esriSLS","style":"esriSLSSolid"}}}; 

       var gra = new esri.Graphic(myMultiPoint); 

       myMap.graphics.add(gra); 

       var graExtent = esri.graphicsExtent(myMap.graphics.graphics); 
       myMap.setExtent(graExtent); 

는 범위로 확대됩니다. 내 고용주가 지금 원하는 것은 그 모든 포인트의 중심점을 찾고 중심에 마커 하나만 표시하는 것입니다.

이 작업을 수행 할 수 있습니까? 그렇다면 어떻게 말해?

덕분에 일의 폴

답변

1

커플.

  1. gis.stackexchange.com에 대해 알고 계셨습니까? 그들은 당신의 문제를 더 잘 해결할 수 있습니다.
  2. 당신이하려는 것은 그 점들이 모두 한 줄에 있지 않다는 가정하에 다각형의 중심을 찾는 것입니다.
  3. 여기 여기 바와 같이 나는 당신이 솔루션은 getExtent(). getCenter를 (이 사용 게시 https://gis.stackexchange.com/questions/7998/how-can-i-calculate-the-center-point-inside-a-polygon-in-arcgis-9-3

을 요구하고 생각하는 질문에 대한 답변과 링크)의

var myPolygonCenterLatLon = myPolygon.getExtent().getCenter(); 
0

내가 무슨 생각을 여기에서하고자하는 것은 Multipoint을 만드는 대신에 점 배열에서 Polygon을 만듭니다. 다각형을 정의한 후에는 다음과 같이 할 수 있습니다.

var myPolygon = new Polygon(points); 
var centroid = myPolygon.getCentroid(); 

이렇게하면 다각형을 구성하는 점의 중심을 얻을 수 있습니다. 이 그래도 JS의 API의 최소 버전 3.7이 필요하다는

https://developers.arcgis.com/javascript/jsapi/polygon-amd.html

참고.

0

.getCentriod()를 사용하려는 사람들에게 지적해야 할 것은, 다각형이 닫혀 있는지 확인해야합니다. 첫 번째 지점과 마지막 지점이 같은 지점에 있어야합니다. 그렇지 않으면 제대로 작동하지 않을 것입니다. (나는 1 년 전에 이것에 부딪쳤다. 그들이 이것을 바꾸 었는지 확실하지 않다)