ArcGIS Flex API扩展之几何图形
发布时间:2020-12-15 05:01:06 所属栏目:百科 来源:网络整理
导读:??????? ArcGIS Flex API中提供了点、线、面等几种常用的几何图形,当需要更多的几何图形时,需要扩展ArcGIS Flex API中的Geometry。大概思路是面状几何图形扩展Polygon,线状几何图形扩展Polyline。其中,Polygon有一个ring的数组组成,而Polyline由一个pat
??????? ArcGIS Flex API中提供了点、线、面等几种常用的几何图形,当需要更多的几何图形时,需要扩展ArcGIS Flex API中的Geometry。大概思路是面状几何图形扩展Polygon,线状几何图形扩展Polyline。其中,Polygon有一个ring的数组组成,而Polyline由一个path组成。不管是ring,还是path,实质上都只是一个MapPoint的数组。 ?????? 以五角星形为例: package gispace.arcgisapiex.geometry { import com.esri.ags.SpatialReference; import com.esri.ags.geometry.MapPoint; import com.esri.ags.geometry.Polygon; /** * 五角星形 * @author ropp * */ public class Pentagon extends Polygon { private var pointNum:int=5; /** * * @param center 中心点 * @param majorRadius 长半径 * @param minorRadius 短半径 * @param spatialReference 空间参考 * */ public function Pentagon(center:MapPoint,majorRadius:Number,minorRadius:Number,spatialReference:SpatialReference=null) { super(null,spatialReference); this.addRing(getPoints(center,majorRadius,minorRadius)); } private function getPoints(center:MapPoint,minorRadius:Number):Array { var x:Number; var y:Number; var angle:Number; var points:Array=[]; var diff:Number = Math.PI/this.pointNum; for (var i:int=0; i < this.pointNum; i++) { angle=Math.PI * 2 * i / this.pointNum; x=center.x + majorRadius * Math.sin(angle); y=center.y + majorRadius * Math.cos(angle); points.push(new MapPoint(x,y)); angle += diff; x=center.x + minorRadius * Math.sin(angle); y=center.y + minorRadius * Math.cos(angle); points.push(new MapPoint(x,y)); } return points; } } } ? ??????? 基于以上理解,提供一个ArcGIS Flex API Geometry的扩展,实现如下图所示的几何图形,包括圆弧、圆、椭圆、五角星形、等腰多边形、扇形等。 ??????? 实例代码下载地址:http://download.csdn.net/detail/gispace/4323079 ??????? 源代码下载地址:http://download.csdn.net/detail/gispace/4336435 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |