使用javascript从esri多点获取中心点

使用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

我已经创建了一个网页,使用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];
                });

                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); 
上面的代码所做的是在地图上打印标记,然后放大范围。我的雇主现在希望我找到所有这些点的中心点,并在中心显示一个标记

这能做到吗?如果是,你告诉我怎么做

谢谢 保罗有两件事

  • 你知道gis.stackexchange.com吗?他们可能会更好地解决你的问题
  • 你要做的是找到一个多边形的中心,假设这些点不都在一条线上
  • 这里有一个链接,我想你在问这个问题
  • 此处发布的解决方案使用getExtent().getCenter(),如图所示

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

    我想你想在这里做的不是创建一个
    多点
    ,而是从你的点数组中创建一个
    多边形
    。定义多边形后,可以执行以下操作

    var myPolygon = new Polygon(points);
    var centroid = myPolygon.getCentroid();
    
    这将获得构成多边形的点的质心


    请注意,这至少需要JS API的3.7版。

    有一点要向那些试图使用.getCentriod()的人指出,请确保多边形是闭合的。你的第一分和最后一分必须在同一点上。否则它就不能正常工作。(我在一年前遇到过这个问题,不确定他们是否改变了这一点)