动态标绘API 1.2,相较前一版本号(点击进入),该版本号新增对基本标绘符号的支持,包含:

单点、多点、折线、手绘线、多边形、手绘多边形、矩形,并提供对应的编辑功能。

例如以下图所看到的,对多点的编辑。

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

下图。用单点表示坦克,多点表示战斗机群。

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

实例代码例如以下:

private var plotDrawTool:PlotDrawTool;
private var plotEditTool:PlotEditTool; private var outline:SimpleLineSymbol = new SimpleLineSymbol("solid", 0xff0000, 1, 1);
private var markerOutline:SimpleLineSymbol = new SimpleLineSymbol("dash", 0x000000, 1, 2);
private var tank:PictureMarkerSymbol = new PictureMarkerSymbol("assets/tank.png");
private var plane:PictureMarkerSymbol = new PictureMarkerSymbol("assets/plane.png");
private var markerSymbol:SimpleMarkerSymbol = new SimpleMarkerSymbol("circle", 25, 0xff0000, 1, 0, 0, 0, markerOutline);
private var multiMarkerSymbol:SimpleMarkerSymbol = new SimpleMarkerSymbol("circle", 25, 0x00ff00, 1, 0, 0, 0, markerOutline);
private var lineSymbol:SimpleLineSymbol = new SimpleLineSymbol("dash", 0x0000ff, 1, 2);
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设置渲染符号
var geometry:Geometry = event.plotGraphic.geometry;
if(geometry is Polygon)
event.plotGraphic.symbol = fillSymbol;
else if(geometry is Polyline)
event.plotGraphic.symbol = lineSymbol;
else if(geometry is MapPoint)
event.plotGraphic.symbol = tank;
else if(geometry is Multipoint)
event.plotGraphic.symbol = plane;
// 显示
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;
}
}

演示样例代码下载地址 点击下载

在线体验  点击进入体验

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

QQ:21587252  email:gispace@yeah.net

您也能够增加 动态标绘讨论 QQ群  318659439 ,一起讨论详细需求和实现。

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

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

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

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

    动态标绘API 1.1版本号.相较前一版本号1.0(点击进入).该版本号提供标绘符号的编辑功能. 编辑功能包含两种编辑状态:编辑控制点.对标绘符号进行旋转.八方向拉伸.平移. 编辑控制点例如以下图所看 ...

  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. [ZJOI2006]物流运输 最短路 动态规划

    Code: 定义状态 $dp[i]$ 为前 $i$ 天的最小代价. 状态转移为:$dp[i]=min(dp[i],dp[j]+spfa(j+1,i)$ 这里 $spfa(i,j)$ 是指 $(i,j) ...

  2. WCF客户端获取服务端异常[自定义异常]

    引言 经过不断的摸索,询问/调试,终于学会了关于WCF客户端与服务端之间异常的处理机制,在此来记录自己的成果,用于记录与分享给需要的伙伴们. 首先感谢[.NET技术群]里群主[轩]的大力帮助,如有需要 ...

  3. Msql免安装版安装

     文首提要:             我下载的MySQL版本是:mysql-5.7.17-winx64.zip  Archive版:系统:Windows7 64位. 一.解压文件 下载好MySQL后, ...

  4. [USACO4.1]篱笆回路Fence Loops

    题目:USACO Training 4.1(在官网上提交需加文件输入输出).洛谷P2738. 题目大意:给你一张图里的边集,让你求出这张图的最小环. 解题思路:求最小环很简单,用Floyd即可.最重要 ...

  5. 【转载】python学习之 字符串前'r'的用法

    文章转载:https://www.cnblogs.com/cyiner/archive/2011/09/18/2180729.html 在打开文件的时候open(r'c:\....') 加r和不加'' ...

  6. code vs 1216 跳马问题

    1216 跳马问题  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description 题目 输入描述 Input Descri ...

  7. Qt之QSpacerItem

    简述 QSpacerItem类为布局提供了一个空白区. 简述 比对 使用 效果 源码 效果 源码 比对 通常情况下,不需要直接使用这个类,Qt内建布局管理器在操控空白区时提供以下功能: 类 函数 QH ...

  8. Memcached存储溢出

    Memcached存储溢出 测试数据生成程序: package com.stoon.test; public class TestFor { public static void main(Strin ...

  9. 解决The hierarchy of the type is inconsistent错误

    可能的原因:自己的类继承于某个类,这个类或者这个类继承的类或者再往上继承的某个类所在的jar包没有被引入. 比如:使用Spring的AOP时,假设须要继承MethodBeforeAdvice和Afte ...

  10. duplicate报ORA-01017权限问题

    duplicate报ORA-01017权限问题   环境: OS:RedHat EnterPrise Linux 5.8 x64 Cluster:Oracle Grid 11.2.0.4 Databa ...