【问题标题】:Getting a central point from an esri multipoint with javascript使用 javascript 从 esri 多点获取中心点
【发布时间】:2014-12-10 08:02:42
【问题描述】:

我创建了一个网页,使用 javasvipt 在 ersi 地图上显示标记。

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); 

上面的代码所做的是在地图上绘制标记,然后放大范围。我的雇主现在想要的是让我找到所有这些点的中心点并在中心显示一个标记。

这可以吗?如果是这样,你告诉我怎么做?

谢谢 保罗

【问题讨论】:

    标签: javascript esri arcmap arcgis-js-api multipoint


    【解决方案1】:

    要向那些尝试使用 .getCentriod() 的人指出一件事,确保你的多边形是封闭的。您的第一个点和最后一个点需要在同一个位置。否则它将无法正常工作。 (我在一年前遇到过这个,不确定他们是否改变了这个)

    【讨论】:

      【解决方案2】:

      我认为你想要在这里做的不是创建一个Multipoint,而是从你的点数组中创建一个Polygon。一旦你定义了一个多边形,你可以做类似的事情

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

      这应该可以让您获得构成多边形的点的质心。

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

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

      【讨论】:

        【解决方案3】:

        几件事。

        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();
        

        【讨论】:

          猜你喜欢
          • 2016-06-09
          • 2016-12-25
          • 1970-01-01
          • 1970-01-01
          • 2019-07-10
          • 1970-01-01
          • 2011-05-20
          • 2020-09-04
          • 1970-01-01
          相关资源
          最近更新 更多