动态标绘API 1.1版本号。相较前一版本号1.0(点击进入)。该版本号提供标绘符号的编辑功能。

编辑功能包含两种编辑状态:编辑控制点。对标绘符号进行旋转、八方向拉伸、平移。

编辑控制点例如以下图所看到的:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvR0lTcGFjZQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" width="500" height="300" /> 

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvR0lTcGFjZQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" width="500" height="300" />

对标绘符号进行旋转、八方向拉伸、平移,例如以下图所看到的:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvR0lTcGFjZQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" width="500" height="300" /> 

代码演示样例

private var plotDrawTool:PlotDrawTool;
private var plotEditTool:PlotEditTool; private var lineSymbol:SimpleLineSymbol = new SimpleLineSymbol("solid", 0x0000ff, 1, 2);
private var outline:SimpleLineSymbol = new SimpleLineSymbol("solid", 0xff0000, 1, 1);
private var fillSymbol:SimpleFillSymbol = new SimpleFillSymbol("solid", 0x00ff00, 0.5, outline); private static const STATE_MOVE_SCALE_ROTATE:int = 0;
private static const STATE_EDIT_CONTROL_POINTS:int = 1; private var editState:int = 0;
private var activePlot:Graphic; private function init():void{
// 实例化绘制工具
this.plotDrawTool = new PlotDrawTool(map);
// 监听 DRAW_END事件,绘制结束后可获得plot
this.plotDrawTool.addEventListener(PlotDrawEvent.DRAW_END, drawEndHandler);
// 实例化编辑工具
this.plotEditTool = new PlotEditTool(map);
} private function drawEndHandler(event:PlotDrawEvent):void{
// 对plot设置渲染符号
if(event.plotGraphic.geometry is Polygon)
event.plotGraphic.symbol = fillSymbol;
else if(event.plotGraphic.geometry is Polyline)
event.plotGraphic.symbol = lineSymbol;
// 显示
this.graphicsLayer.add(event.plotGraphic);
// 设置鼠标单击事件响应
event.plotGraphic.addEventListener(MouseEvent.CLICK, graphicClickHandler);
} private function graphicClickHandler(event:MouseEvent):void{
var graphic:Graphic = event.currentTarget as Graphic;
if(graphic == this.activePlot){
if(this.editState == STATE_MOVE_SCALE_ROTATE){
// 开启 移动+编辑控制点 状态
this.plotEditTool.activate(PlotEditTool.MOVE|PlotEditTool.EDIT_CONTROL_POINTS, graphic);
this.editState = STATE_EDIT_CONTROL_POINTS;
}
else{
// 开启 移动+旋转缩放 状态
this.plotEditTool.activate(PlotEditTool.MOVE|PlotEditTool.SCALE_ROTATE, graphic);
this.editState = STATE_MOVE_SCALE_ROTATE;
}
}
else{
this.activePlot = graphic;
this.plotEditTool.activate(PlotEditTool.MOVE|PlotEditTool.EDIT_CONTROL_POINTS, graphic);
this.editState = STATE_EDIT_CONTROL_POINTS;
}
} ]]>
</fx:Script>
<ns:Map id="map" level="5">
<ns:ArcGISTiledMapServiceLayer url="http://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineCommunity/MapServer"/>
<ns:GraphicsLayer id="graphicsLayer"/>
</ns:Map>
<s:Group left="50" top="20">
<s:Rect width="100%" height="100%">
<s:fill>
<s:SolidColor color="0xcccccc" alpha="0.7"/>
</s:fill>
</s:Rect>
<s:VGroup paddingBottom="10" paddingTop="10" paddingLeft="10" paddingRight="10">
<s:HGroup verticalAlign="middle">
<s:Label text="线标"/>
<s:Button label="圆弧" click="{plotDrawTool.activate(PlotTypes.ARC)}"/>
<s:Button label="曲线" click="{plotDrawTool.activate(PlotTypes.CURVE)}"/>
</s:HGroup>
<s:HGroup verticalAlign="middle">
<s:Label text="面标"/>
<s:Button label="圆形" click="{plotDrawTool.activate(PlotTypes.CIRCLE)}"/>
<s:Button label="椭圆" click="{plotDrawTool.activate(PlotTypes.ELLIPSE)}"/>
<s:Button label="弓形" click="{plotDrawTool.activate(PlotTypes.LUNE)}"/>
<s:Button label="扇形" click="{plotDrawTool.activate(PlotTypes.SECTOR)}"/>
<s:Button label="闭合曲线" click="{plotDrawTool.activate(PlotTypes.CLOSED_CURVE)}"/>
<s:Button label="集结地" click="{plotDrawTool.activate(PlotTypes.GATHERING_PLACE)}"/>
</s:HGroup>
<s:HGroup verticalAlign="middle">
<s:Label text="箭头"/>
<s:Button label="直箭头" click="{plotDrawTool.activate(PlotTypes.STRAIGHT_ARROW)}"/>
<s:Button label="细直箭头" click="{plotDrawTool.activate(PlotTypes.FINE_ARROW)}"/>
<s:Button label="袭击方向" click="{plotDrawTool.activate(PlotTypes.ASSAULT_DIRECTION)}"/>
<s:Button label="进攻方向" click="{plotDrawTool.activate(PlotTypes.ATTACK_ARROW)}"/>
<s:Button label="进攻方向(尾)" click="{plotDrawTool.activate(PlotTypes.TAILED_ATTACK_ARROW)}"/>
<s:Button label="钳击" click="{plotDrawTool.activate(PlotTypes.DOUBLE_ARROW)}"/>
<s:Button label="分队战斗" click="{plotDrawTool.activate(PlotTypes.SQUAD_COMBAT)}"/>
<s:Button label="分队战斗(尾)" click="{plotDrawTool.activate(PlotTypes.TAILED_SQUAD_COMBAT)}"/>
</s:HGroup>
</s:VGroup>
</s:Group>

演示样例代码下载地址 最新版本号

欢迎大家使用、反馈意见。

QQ:21587252  email:gispace@yeah.net

基于ArcGIS Flex API实现动态标绘(1.1)的更多相关文章

  1. 基于ArcGIS Flex API实现动态标绘(1.0)

    标绘作为一种数据展示形式,在多个行业都有需求. 基于ArcGIS Flex API(3.6)实现标绘API,当前版本号1.0 alpha,支持经常使用几种标绘符号,包含: 圆弧.曲线.圆形.椭圆.弓形 ...

  2. 基于ArcGIS Flex API实现动态标绘(1.2)

    动态标绘API 1.2,相较前一版本号(点击进入),该版本号新增对基本标绘符号的支持,包含: 单点.多点.折线.手绘线.多边形.手绘多边形.矩形,并提供对应的编辑功能. 例如以下图所看到的,对多点的编 ...

  3. ArcGIS API for Silverlight动态标绘的实现

    原文:ArcGIS API for Silverlight动态标绘的实现 1.下载2个dll文件,分别是: ArcGISPlotSilverlightAPI.dll 和 Matrix.dll 其下载地 ...

  4. 动态标绘演示系统1.4.3(for ArcGIS Flex)

    标绘有API文档啦! 在线浏览 ------------------------------------------------------------------------------------ ...

  5. 动态标绘演示系统1.0(for OpenLayers3)

    实现OpenLayers3(http://openlayers.org)版本号的动态标绘API.眼下1.0版本号,仅支持简单符号绘制. 在线体验地址:http://gispace.duapp.com/ ...

  6. 基于ArcGIS JS API的在线专题地图实现

    0 引言     专题地图是突出而深入的表示一种或几种要素或现象,即按照地图主题的要求,集中表示与主题有关内容的地图.专题地图的专题要素多种多样,分类方法也多种多样,根据专题地图表现数据的特点可分为定 ...

  7. 基于 ArcGIS Silverlight API开发的WebGIS应用程序的部署

    部署流程概述 在微软的iis服务器上部署基于ArcGIS  Silverlight API的应用程序,主要包括以下几个步骤: 1)(可选)部署GIS服务 如果需要将GIS服务也部署在Web服务器上,则 ...

  8. ArcGIS Flex API加载大量数据

    1.关于大量数据的加载: 直接将所要展示的数据在服务器端发布成一个MapService,在客户端通过ArcGISDynamicMapServiceLayer来加载.这样的话客户端需要展示的仅仅是一张图 ...

  9. ARCGIS FLEX API加载google地图、百度地图、天地图(转)

    http://www.cnblogs.com/chenyuming507950417/ Flex加载google地图.百度地图以及天地图作底图 一  Flex加载Google地图作底图 (1)帮助类G ...

随机推荐

  1. c# winform控件dock属性停造位置、摆放顺序详解

    dock : [英文释义- 码头.依靠][winform释义- 获取或设置当前控件依靠到父容器的哪一个边缘.] 用途:多数控件都有这个属性,主要用来设置控件的布局. 但对于不太了解这个属性的朋友来说有 ...

  2. NHibernate系列学习(二)-使用sql和hql以及linq

    1.本文主要介绍了NH的三种查询方式 2.界面查看 3.代码架构 4.代码详情 namespace KimismeDemo { public partial class Form2 : Form { ...

  3. Echarts 出现不明竖线解决方案

    Echarts出现了不明竖线,百思不得其解.去查相应的解决方案也没有找到. 后来自己点来点去,突然感觉像是上一个Echarts遗留的. 然后去Echarts官网看到了 clear()方法,这个方法可以 ...

  4. Android基础TOP3_1:纵横屏切换

    在Res下建立layout-port文件夹  为竖屏时加载的界面: 建立layout-land 文件夹 为横屏加载的界面

  5. Less——less基本安装

    1.下载node.js 我们需要NodeJ运行LESS示例. 要下载NodeJ,请打开链接https://nodejs.org/en/ 2.node.js安装是否正确 在cmd中输入lessc -v, ...

  6. 【sqli-labs】 less44 POST -Error based -String -Stacked Blind(POST型基于盲注的堆叠字符型注入)

    盲注漏洞,登陆失败和注入失败显示的同一个页面 可以用sleep函数通过延时判断是否闭合引号成功 这个方法有一点不好的地方在于,并不能去控制延时,延时的时间取决于users表中的数据数量和sleep函数 ...

  7. IE浏览器new Date()带参返回NaN解决方法

    var start = '2016-01-01 12:12:12'; var date = new Date(start); 得到的时间为NaN: 解决方法: 1.自定义方法 自定义一个NewDate ...

  8. 安装部署NetBeans mysql Tomact joget workflow 环境

    一.安装joget workflow 1.安装jdk 下载jdk http://www.oracle.com/technetwork/java/javase/downloads/index.html ...

  9. uva 202(Repeating Decimals UVA - 202)

    题目大意 计算循环小数的位数,并且按照格式输出 怎么做 一句话攻略算法核心在于a=a%b*10,用第一个数组记录被除数然后用第二个数组来记录a/b的位数.然后用第三个数组记录每一个被除数出现的位置好去 ...

  10. Flask - 模板语言jinja2 和render_template高级用法

    目录 Flask - 模板语言jinja2 和render_template高级用法 一. 字典传递至前端 二. 列表传入前端Jinja2 模板的操作: 三. 大字典传入前端 Jinja2 模板 四. ...