ArcGIS API for Flex实现GraphicsLayer上画点、线、面。
目的: ArcGIS API for Flex实现GraphicsLayer上画点、线、面。
准备工作: 1.这次地图数据就用Esri提供的http://server.arcgisonline.com/ArcGIS/rest/services/NPS_Physical_World_2D/MapServer。完成后的效果图:
ArcGIS.Server.9.3 ArcGIS API for Flex zclmj
21 / 80
开始: 1.启动Flex Builder3新建工程以及引入ArcGIS API for Flex library的开发包。2.新建DrawTool.mxml页面,然后在页面上添加esri:Map控件设置esri:ArcGISTiledMapServiceLayer等。3.和上一篇一样仍旧用mx:ToggleButtonBar来实现功能按钮,mx:ToggleButtonBar需要包含6个按钮分别实现6种不一样的操作,具体代码如下:
1<mx:ToggleButtonBar iconField="icon" horizontalCenter="-47" verticalCenter="-151" itemClick="itemClickHandler(event)" toggleOnClick="true">
<mx:dataProvider>
<mx:Array>
<mx:Object icon="{point}" />
<mx:Object icon="{point2}" />
<mx:Object icon="{polyline3}" />
<mx:Object icon="{polyline}" />
<mx:Object icon="{polyline2}" />
<mx:Object icon="{polygon}" />
<mx:Object icon="{polygon2}" />
<mx:Object icon="{polygon3}" />
</mx:Array>
</mx:dataProvider>
</mx:ToggleButtonBar>
4.上面的代码中icon对应的图标定义在mx:Script中如下:
//图标图片
[Bindable]
[Embed(source="assets/point.gif")]
public var point:Class;
[Bindable]
[Embed(source="assets/point2.gif")]
public var point2:Class;
[Bindable]
[Embed(source="assets/polyline.gif")]
public var polyline:Class;
[Bindable]
[Embed(source="assets/polyline3.gif")]
public var polyline3:Class;
[Bindable]
[Embed(source="assets/polyline2.gif")]
public var polyline2:Class;
[Bindable]
[Embed(source="assets/polygon.gif")]
public var polygon:Class;
[Bindable]
[Embed(source="assets/polygon2.gif")]
public var polygon2:Class;
[Bindable]
[Embed(source="assets/polygon3.gif")]
public var polygon3:Class;
5.现在要实现在地图上画点、线等就需要esri:GraphicsLayer 的功能,实际上点、线、面都是画在GraphicsLayer的所以需要在Map控件中添加:
<esri:Map id="myMap" extent="{allMap}" logoVisible="false">
<esri:ArcGISTiledMapServiceLayer url="http://server.arcgisonline.com/ArcGIS/rest/services/NPS_Physical_World_2D/MapServer" />
<esri:GraphicsLayer id="myGraphicsLayer"/>
</esri:Map>
6.要进行绘制功能esri已经提供了esri:Draw这个控件能很方便的实现基本图形的绘制,使用代码如下:
<esri:Draw id="drawToolbar" map="{myMap}" graphicsLayer="{myGraphicsLayer}" />
7.esri:Draw有2个属性一个是要进行画图操作的地图控件,一个是画图的容器GraphicsLayer 。
8.接下来定义一下画出来的点、线、面的显示样式,代码如下:
<esri:SimpleLineSymbol id="sls" style="solid" color="0xFF0000" width="2" alpha="1"/>
<esri:SimpleMarkerSymbol id="sms" style="square" color="0xFF0000" size="10" />
<esri:SimpleFillSymbol id="sfs" style="solid" color="0xFF0000" alpha="0.5"/>
9.上面的sls为线的显示样式;sms为点的显示样式;sfs为面的显示样式,关于样式的定义可以查询一下帮助了有很多的样式等可以实现。
10.最后就是编写功能代码在上面的ToggleButtonBar控件中已经给它添加了一个itemClick="itemClickHandler(event)",这里就是编写itemClickHandler(event)这个方法的代码:
import mx.events.ItemClickEvent;
private function itemClickHandler(event:ItemClickEvent):void
{
//设置点样式
drawToolbar.markerSymbol=sms;
//设置线样式
drawToolbar.lineSymbol=sls;
//设置面样式
drawToolbar.fillSymbol=sfs;
//更加按钮的index值设置不同的绘制操作
switch(event.index)
{
case 0:
{
drawToolbar.activate(Draw.MAPPOINT);
break;
}
case 1:
{
drawToolbar.activate(Draw.MULTIPOINT);
break;
}
case 2:
{
drawToolbar.activate(Draw.LINE);
break;
}
case 3:
{
drawToolbar.activate(Draw.POLYLINE);
break;
}
case 4:
{
drawToolbar.activate(Draw.FREEHAND_POLYLINE);
break;
}
case 5:
{
drawToolbar.activate(Draw.POLYGON);
break;
}
case 6:
{
drawToolbar.activate(Draw.FREEHAND_POLYGON);
break;
}
case 7:
{
drawToolbar.activate(Draw.EXTENT);
break;
}
}
}
ArcGIS API for Flex实现GraphicsLayer上画点、线、面。的更多相关文章
- 天津政府应急系统之GIS一张图(arcgis api for flex)讲解(十)态势标绘模块
config.xml文件的配置如下: <widget label="态势标绘" icon="assets/images/impact_area_over.png&q ...
- arcgis api for flex之专题图制作(饼状图,柱状图等)
最近公司给我一个任务,就是利用arcgis api for flex实现在地图上点(业务数据)直接显示饼状图以及柱状图的专题图制作,而不是通过点击点显示气泡窗口的形式来实现,这个公司已经实现了. 经过 ...
- Clustering with the ArcGIS API for Flex
Clustering is an excellent technique for visualizing lotss of point data. We've all seen application ...
- 天津政府应急系统之GIS一张图(arcgis api for flex)讲解(一)GIS一张图的系统开发环境以及flexviewer框架
系统的GIS功能实现是基于arcgis api for flex,首先附上系统的主界面图,接下来的是对主界面的模块功能详细讲解: 一.GIS环境软件安装 (1)arcgis desktop的安装,要是 ...
- arcgis api for flex 开发入门(一)环境搭建
http://www.cnblogs.com/wenjl520/archive/2009/06/02/1494514.html arcgis api for flex 开发入门(一)环境搭建arcgi ...
- ArcGIS API for Silverlight 地图元素点闪烁,线流动显示的处理方式
原文:ArcGIS API for Silverlight 地图元素点闪烁,线流动显示的处理方式 <Grid x:Name="LayoutRoot" Background=& ...
- 天津政府应急系统之GIS一张图(arcgis api for flex)讲解(十三)台风模块
config.xml文件的配置如下: <widget label="台风" icon="assets/images/typhoon.png" config ...
- 天津政府应急系统之GIS一张图(arcgis api for flex)讲解(十一)路径导航模块
config.xml文件的配置如下: <widget label="路径导航" icon="assets/images/lujingdaohang.png" ...
- ArcGIS API Reference & Flex API samples学习进度备忘
书签:跳过:另外跳过的内容有待跟进 __________________学习资源: 1.http://help.arcgis.com/en/webapi/flex/apiref/index.html ...
随机推荐
- 编写更好的jQuery代码的建议(share)
留个备份! 原文链接: Mathew Carella 翻译: 伯乐在线- yanhaijing译文链接: http://blog.jobbole.com/52770/ 讨论jQuery和javas ...
- [debian]SublimeText>PrettyCode無效
怣 apt-get install node http://nodejs.org/#download.
- Android学习五:Content Provider 使用
1ContentProvider相关知识1.1在安卓应用中,通过文件方式对外共享数据,需要进行文件操作读写数据:采用sharedpreferences共享数据,需要使用sharedpreference ...
- MySQL管理_数据库常用命令
1.数据库赋权 进入mysql数据库: mysql> use mysql; 给root用户设置新密码: mysql> update user set password=password(& ...
- sqlserver2008 ,只能选C盘目录,不能选其它盘目录
数据库sql2008安装后,无论备份或还原,只能看到C盘,手工输入路径,错误提示如下:尝试打开或创建物理文件 'D:\数据库\db.mdf' 时,CREATE FILE 遇到操作系统错误 5(拒绝访问 ...
- c#定义全局条件编译符号
在"工程"上单机右键,"属性"--->"生成"--->"条件编译符号"后边的输入框中,输入自定义的条件编译变 ...
- css3立体旋转
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 【学+原】CSS3的2D动画 ——仿NOMOS手表
看CSS3妙味课堂中有一课是介绍如何做钟表界面,然后三根针都能随着时间转动,然后自己在那个简易的版本上做了一些进一部改进. 最关键的知识点应该是transform-origin这个样式,要选对旋转的中 ...
- linux 文档处理命令
1. 将用户信息数据库文件和组信息数据纵向合并为一个文件/1.txt(覆盖) 2.将用户信息数据库文件和用户密码数据库文件纵向合并为一个文件/2.txt(追加 3.将/1.txt./2.txt两个文件 ...
- Python基础篇【第2篇】: Python自定义函数
Python函数 1. 函数定义 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段.函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print ...