ArcGIS for Flex求点、线、面的中心点

在API中用线/面元素.extent.center获得的中心点实际上是线面元素围成的矩形框的内点,这个点往往不在线/面上面,下面的方法就能算出线/面的中心点。

            private function getGeomCenter(gra:Graphic):MapPoint
            {
                var pt:MapPoint;
                   switch (gra.geometry.type)
                   {
                   case Geometry.MAPPOINT:
                   {
                        pt = gra.geometry as MapPoint;
                        break;
                   }
                   case Geometry.POLYLINE:
                   {
                           var pl:Polyline = gra.geometry as Polyline;
                           var pathCount:Number = pl.paths.length;
                           var pathIndex:int = int((pathCount / 2) - 1);
                           var midPath:Array = pl.paths[pathIndex];
                           var ptCount:Number = midPath.length;
                           var ptIndex:int = int((ptCount / 2) - 1);
                           pt = pl.getPoint(pathIndex, ptIndex);
                           break;
                   }
                   case Geometry.POLYGON:
                   {
                        var poly:Polygon = gra.geometry as Polygon;
                        var RingCount:Number = poly.rings.length;
                           var ringIndex:int = int((RingCount / 2) - 1);
                           var midRing:Array = poly.rings[ringIndex];
                           var ptRingCount:Number = midRing.length;
                           var ptRingIndex:int = int((ptRingCount / 2) - 1);
                           pt=poly.getPoint(ringIndex,ptRingIndex);
                        break;
                   }
                }
                return pt;
            }           

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值