使用javascript从esri多点获取中心点
我已经创建了一个网页,使用javasvipt在ERI地图上显示标记使用javascript从esri多点获取中心点,javascript,esri,arcmap,arcgis-js-api,multipoint,Javascript,Esri,Arcmap,Arcgis Js Api,Multipoint,我已经创建了一个网页,使用javasvipt在ERI地图上显示标记 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
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);
上面的代码所做的是在地图上打印标记,然后放大范围。我的雇主现在希望我找到所有这些点的中心点,并在中心显示一个标记
这能做到吗?如果是,你告诉我怎么做
谢谢
保罗有两件事
var myPolygonCenterLatLon = myPolygon.getExtent().getCenter();
我想你想在这里做的不是创建一个
多点
,而是从你的点数组中创建一个多边形
。定义多边形后,可以执行以下操作
var myPolygon = new Polygon(points);
var centroid = myPolygon.getCentroid();
这将获得构成多边形的点的质心
请注意,这至少需要JS API的3.7版。有一点要向那些试图使用.getCentriod()的人指出,请确保多边形是闭合的。你的第一分和最后一分必须在同一点上。否则它就不能正常工作。(我在一年前遇到过这个问题,不确定他们是否改变了这一点)