2014-10-15 10 views
2

Я создал веб-страницу, отображающую маркеры на карте ersi с использованием javasvipt.Получение центральной точки из эсри многоточечного соединения с javascript

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

Javascript код:

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. Вот ссылка с ответом на вопрос, который я думаю, что вы просите https://gis.stackexchange.com/questions/7998/how-can-i-calculate-the-center-point-inside-a-polygon-in-arcgis-9-3

Решение размещены там использует getExtent(). GetCenter(), как показано здесь

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

Я думаю, что вы хотите здесь сделать вместо создания Multipoint, создать Polygon из вашего массива точек. После того, как вы многоугольник определен, вы можете сделать что-то вроде

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

это вы должны получить центроида точек, образующих многоугольник.

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

Обратите внимание, что для этого требуется, по крайней мере версии 3.7 API JS, хотя.

0

Одна вещь, указывающая на тех, кто пытается использовать .getCentriod(), убедитесь, что ваш многоугольник закрыт. Ваш 1-й пункт и последний пункт должны находиться в одном месте. В противном случае он не будет работать правильно. (Я столкнулся с этим год назад, не уверен, изменили ли они это)

 Смежные вопросы

  • Нет связанных вопросов^_^