arcgis api for flex 开发入门(四)Darw控件的使用

简介:

arcgis api for flex 开发入门(四)Darw控件的使用
arcgis api for flex 在客户端提供了强大的绘制功能,可以通过简单的调用来
完成复杂的绘制工作,达到很好的交互效果,提供完美的用户体验,感觉不出来
是在web上操作。
下面我们就一起来实现绘制功能。
首先,我们需要定义一个draw 控件,使用<esriraw>标签来完成创建工作,如
下面的代码
<esriraw id="drawToolbar" map="{myMap}"
graphicsLayer="{myGraphicsLayer}" />
<esriraw >标签的map属性要绑定要你需要绘制的map上。graphicsLayer属性要
绑定到一个graphicsLayer上,所有绘制的结果都会添加到graphicsLayer上,
graphicsLayer的创建可以参考第二讲的内容。
控件创建好了,我们下面就可以调用这个控件的函数来完成绘制任务。
和上一讲一样,我们创建一个controlbar 来响应这些绘制的操作。
<mx:ControlBar horiz paddingBottom="0" paddingTop="0">
     <mx:Button label="点"   click="drawToolbar.activate
(Draw.MAPPOINT)"  />
     <mx:Button label="线"   click="drawToolbar.activate
(Draw.POLYLINE)"  />  
     <mx:Button label="流线"   click="drawToolbar.activate
(Draw.FREEHAND_POLYLINE)"  />
     <mx:Button label="矩形"   click="drawToolbar.activate
(Draw.EXTENT)"  />         
      <mx:Button label="多边形"   click="drawToolbar.activate
(Draw.POLYGON)"   />           
      <mx:Button label="流多边形"      click="drawToolbar.activate
(Draw.FREEHAND_POLYGON) "/>        
<mx:Button label="结束绘制"      click="drawToolbar.deactivate
() "/>  
      </mx:ControlBar>
在button 的click 响应函数里,我们只需要调用draw控件的activate函数来激活
当前绘制工具就可以了。
当你不想绘制的时候,调用deactivate函数就ok了,释放掉当前选择的绘制工具。
完整代码:

ContractedBlock.gif ExpandedBlockStart.gif Code
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
    
xmlns:mx="http://www.adobe.com/2006/mxml"
    xmlns:esri
="http://www.esri.com/2008/ags"
    pageTitle
="Using ArcGIS API for Flex to connect to a cached ArcGIS 
Online service"

    styleName
="plain">
  
<esri:Draw id="drawToolbar" map="{myMap}" 
graphicsLayer
="{myGraphicsLayer}" />
    
<esri:SpatialReference id="sr" wkid="4326"/>
     
<mx:ControlBar horizontalGap="0" paddingBottom="0" paddingTop="0"> 
     
<mx:Button label="点"   click="drawToolbar.activate
(Draw.MAPPOINT)"
  />
     
<mx:Button label="线"   click="drawToolbar.activate
(Draw.POLYLINE)"
  />  
     
<mx:Button label="流线"   click="drawToolbar.activate
(Draw.FREEHAND_POLYLINE)"
  /> 
     
<mx:Button label="矩形"   click="drawToolbar.activate
(Draw.EXTENT)"
  />         
      
<mx:Button label="多边形"   click="drawToolbar.activate
(Draw.POLYGON)"
   />           
      
<mx:Button label="流多边形"      click="drawToolbar.activate
(Draw.FREEHAND_POLYGON) "
/>        
<mx:Button label="结束绘制"      click="drawToolbar.deactivate
() "
/>  
      
</mx:ControlBar>
    
<esri:Map crosshairVisible="true" id = "myMap">
        
<esri:extent>
  
<esri:Extent  id = "esriMapExtent" xmin="116" 
ymin
="39.5" xmax="116.5" ymax="40.5"/>
  
</esri:extent>
        
<esri:ArcGISTiledMapServiceLayer
            
url="http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap
_World_2D/MapServer"
 />
     
<esri:GraphicsLayer id="myGraphicsLayer" 
spatialReference
="{sr}"/>
    
</esri:Map>
</mx:Application>

原文地址:http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=35583&extra=page%3D4%26amp%3Borderby%3Ddateline



本文转自温景良(Jason)博客园博客,原文链接:http://www.cnblogs.com/wenjl520/archive/2009/06/02/1494543.html,如需转载请自行联系原作者

相关文章
|
7天前
|
缓存 监控 API
构建高效可扩展的RESTful API:后端开发的实践指南
【4月更文挑战第26天】在现代Web开发中,构建一个高效、可扩展且易于维护的RESTful API是后端工程师必须面对的挑战。本文将深入探讨如何利用最佳实践和流行技术,设计出符合REST架构原则的服务端接口。我们将重点讨论API版本控制、资源路由、数据库优化、缓存策略以及安全性考虑等方面,旨在为开发者提供一套综合性解决方案,帮助其提升API的性能与可靠性。
|
3天前
|
JSON API 数据处理
【Swift开发专栏】Swift中的RESTful API集成实战
【4月更文挑战第30天】本文探讨了在Swift中集成RESTful API的方法,涉及RESTful API的基础概念,如HTTP方法和设计原则,以及Swift的网络请求技术,如`URLSession`、`Alamofire`和`SwiftyJSON`。此外,还强调了数据处理、错误管理和异步操作的重要性。通过合理利用这些工具和策略,开发者能实现高效、稳定的API集成,提升应用性能和用户体验。
|
3天前
|
缓存 前端开发 搜索推荐
【Flutter前端技术开发专栏】Flutter中的自定义绘制与Canvas API
【4月更文挑战第30天】Flutter允许开发者通过`CustomPaint`和`CustomPainter`进行自定义绘制,以实现丰富视觉效果。`CustomPaint` widget将`CustomPainter`应用到画布,而`CustomPainter`需实现`paint`和`shouldRepaint`方法。`paint`用于绘制图形,如示例中创建的`MyCirclePainter`绘制蓝色圆圈。Canvas API提供绘制形状、路径、文本和图片等功能。注意性能优化,避免不必要的重绘和利用缓存提升效率。自定义绘制让Flutter UI更具灵活性和个性化,但也需要图形学知识和性能意识。
【Flutter前端技术开发专栏】Flutter中的自定义绘制与Canvas API
|
3天前
|
存储 关系型数据库 Go
【Go语言专栏】基于Go语言的RESTful API开发
【4月更文挑战第30天】本文介绍了使用Go语言开发RESTful API的方法,涵盖了路由、请求处理、数据存储和测试关键点。RESTful API基于HTTP协议,无状态且使用标准方法表示操作。在Go中,通过第三方库如`gorilla/mux`进行路由映射,使用`net/http`处理请求,与数据库交互可选ORM库`gorm`,测试则依赖于Go内置的`testing`框架。Go的简洁性和并发性使得它成为构建高效API的理想选择。
|
3天前
|
机器学习/深度学习 算法 安全
深度学习在图像识别中的应用与挑战构建高效可扩展的RESTful API:后端开发的实战指南
【4月更文挑战第30天】 随着计算机视觉技术的飞速发展,深度学习在图像识别领域取得了显著的成果。本文将探讨深度学习技术在图像识别中的应用及其所面临的挑战。首先,我们将介绍深度学习的基本原理和关键技术,然后分析其在图像识别中的优势和应用案例。最后,我们将讨论当前深度学习在图像识别领域所面临的主要挑战和未来的发展趋势。
|
4天前
|
XML JSON API
【PHP开发专栏】PHP RESTful API设计与开发
【4月更文挑战第29天】本文探讨了在Web开发中流行的前后端分离模式,重点介绍了RESTful API的设计与实现。REST是一种基于HTTP协议的架构风格,核心概念包括资源、表述和状态转换。RESTful API设计遵循无状态、统一接口等原则,使用GET、POST、PUT、DELETE等HTTP方法执行操作,并通过状态码和JSON/XML传输数据。在PHP中实现RESTful API,可通过定义路由、创建控制器、处理请求和响应,同时注意安全性措施,如使用HTTPS。文中还提供了一个用户管理API的实战示例,以帮助读者更好地理解和应用RESTful API。
|
10天前
|
人工智能 机器人 API
【Python+微信】【企业微信开发入坑指北】3. 如何利用企业微信API给微信群推送消息
【Python+微信】【企业微信开发入坑指北】3. 如何利用企业微信API给微信群推送消息
12 0
|
7月前
|
人工智能 数据可视化 API
ArcGIS API for Python
ArcGIS API for Python
34 0
|
11月前
|
JavaScript 前端开发 应用服务中间件
Arcgis api for javascript 详细部署
Arcgis api for javascript 详细部署
|
人工智能 数据可视化 数据管理
ArcGIS API for Python
ArcGIS API for Python
78 0