- 浏览: 26493 次
- 性别:
- 来自: 北京
文章分类
最新评论
环境要求:
安装FLASH-BULID4.5 版本相对比较稳定
Arcgis 10.0环境 需安装Arc desktop 和 Arcgis server
需要搭建的图层的矢量数据,需要切片
一切准备就绪开始创建一个gis的RIA应用吧,
1.在FLEX-BUILD的开发环境下 新建FLEX 项目
项目名 :DEMO
点击确定后在默认包下你会看到 DEMO.mxml。这个就是应用的主入口了
2.导入ags-lib包见附件,包的作用的ARCGIS提供的对FLEX操作的一些借口应用
右键工程名-- 点击属性,选择 FLEX构建路径 -- 添加SWC,选择ags-lib包点击确定。
3.DEMO.mxml
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:esri="http://www.esri.com/2008/ags" xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:nav="com.component.*" pageTitle="arcgis for flex" minWidth="955" minHeight="600"> <fx:Declarations> <!-- 将非可视元素(例如服务、值对象)放在此处 --> <!-- Symbol for Find Result as Point --> <esri:SimpleMarkerSymbol id="smsFind" alpha="0.9" color="0xFFFF00" size="11" style="square"> <esri:SimpleLineSymbol color="0x000000"/> </esri:SimpleMarkerSymbol> <!-- Symbol for Find Result as Polyline --> <esri:SimpleLineSymbol id="slsFind" width="3" alpha="0.9" color="0xFFFF00" style="solid"/> <!-- Symbol for Find Result as Polygon --> <esri:SimpleFillSymbol id="sfsFind" alpha="0.7" color="0xFFFF00"/> <!-- Find Task --> <esri:FindTask id="findTask" executeComplete="findTask_executeCompleteHandler(event)" url="http://localhost:8399/arcgis/rest/services/canada_new/MapServer"/> <!-- 查询参数: contains:是否接受模糊查找。 layerIds:查询图级。 searchFields:查询字段。 searchText:查询的字符串。 executeComplete:完成后触发 --> <esri:FindParameters id="myFindParams" contains="true" layerIds="[0,1,2]" outSpatialReference="{geoMap.spatialReference}" returnGeometry="true" searchFields="[GEO_ID]" searchText="{fText.text}" /> <esri:NavigationTool id="navToolbar" map="{geoMap}"/> <!-- 将非可视元素(例如服务、值对象)放在此处 --> </fx:Declarations> <fx:Script> <![CDATA[ import com.esri.ags.events.MapMouseEvent; import com.esri.ags.geometry.MapPoint; import com.esri.ags.utils.WebMercatorUtil; import com.esri.ags.Graphic; import com.esri.ags.events.FindEvent; import com.esri.ags.events.MapMouseEvent; import com.esri.ags.geometry.Geometry; import com.esri.ags.tasks.FindTask; import com.esri.ags.tools.NavigationTool; import mx.events.ListEvent; private function doFind():void { findTask.execute(myFindParams); } protected function findTask_executeCompleteHandler(event:FindEvent):void { myGraphicsLayer.clear(); var graphic:Graphic; resultSummary.text = "Found " + event.findResults.length + " results."; var resultCount:int = event.findResults.length; for (var i:Number = 0; i < resultCount; i++) { graphic = event.findResults[i].feature; event.findResults[i].displayFieldName = event.findResults[i].feature.attributes.GEO_ID; event.findResults[i].layerName = event.findResults[i].feature.attributes.NAME; graphic.toolTip = event.findResults[i].foundFieldName + ": " + event.findResults[i].value; switch (graphic.geometry.type) { case Geometry.MAPPOINT: { graphic.symbol = smsFind; break; } case Geometry.POLYLINE: { graphic.symbol = slsFind; break; } case Geometry.POLYGON: { graphic.symbol = sfsFind; break; } } myGraphicsLayer.add(graphic); } } //itemList 点击事件 protected function dataGrid_itemClickHandler(event:ListEvent):void { var a:ListEvent = event; } protected function geoMap_mapClickHandler(event:MapMouseEvent):void { var latlong:MapPoint = WebMercatorUtil.webMercatorToGeographic(event.mapPoint) as MapPoint; geoMap.infoWindow.label = "You clicked at " + event.mapPoint.x.toFixed(1) + " / " + event.mapPoint.y.toFixed(1) + "\nLat/Long is: " + latlong.y.toFixed(6) + " / " + latlong.x.toFixed(6); geoMap.infoWindow.show(event.mapPoint); // "Show the click" } ]]> </fx:Script> <mx:VDividedBox width="100%" height="100%" > <s:Label id="resultSummary" height="15"/> <esri:Map crosshairVisible="true" id="geoMap" width="100%" height="100%" mapClick="geoMap_mapClickHandler(event)" > <esri:extent> <esri:Extent xmin="-123.22" ymin="31.12" xmax="-67.41" ymax="58.45"> <esri:SpatialReference wkid="4326"/> </esri:Extent> </esri:extent> <esri:ArcGISTiledMapServiceLayer url="http://localhost:8399/arcgis/rest/services/canada_new/MapServer" /> <esri:GraphicsLayer id="myGraphicsLayer"/> </esri:Map> <mx:DataGrid id="dataGrid" width="100%" height="40%" dataProvider="{findTask.executeLastResult}" itemClick="dataGrid_itemClickHandler(event)"> <mx:columns> <mx:DataGridColumn width="200" dataField="displayFieldName" headerText="图层ID"/> <mx:DataGridColumn dataField="layerName" headerText="名称"/> </mx:columns> </mx:DataGrid> </mx:VDividedBox> <s:HGroup y="240"> <nav:Buttons/> <!--导航栏组件--> </s:HGroup> <s:BorderContainer width="100%" height="40" backgroundColor="0xDDDDFF"> <s:layout> <s:HorizontalLayout horizontalAlign="center" verticalAlign="middle"/> </s:layout> <s:Label text="Search for names of States, Cities, and Rivers:"/> <s:TextInput id="fText" enter="doFind()" maxWidth="400" text=""/> <s:Button click="doFind()" label="查询"/> </s:BorderContainer> </s:Application>
在com.component中加入button的扩展组件ButtonControls.as
package com.component { import com.esri.ags.Map; import com.esri.ags.tools.NavigationTool; import flash.events.MouseEvent; import mx.containers.DividedBox; import mx.controls.Alert; import mx.core.Application; import mx.core.FlexGlobals; import mx.events.FlexEvent; import spark.components.Button; public class ButtonControls extends DividedBox { public var fd:Button; public var sx:Button; public var yd:Button; public var geoMap:Map; public var navToolbar:NavigationTool; public function ButtonControls() { geoMap = FlexGlobals.topLevelApplication.geoMap;//获取全局的geoMAP navToolbar = FlexGlobals.topLevelApplication.navToolbar;//地图浏览控件 super(); addEventListener(FlexEvent.CREATION_COMPLETE,registerEvent);//构造方法,当组件构建完成之后 会执行creationCompleteHandler方法 } //注册事件 protected function registerEvent(event:FlexEvent):void{ fd.addEventListener(MouseEvent.CLICK,function():void{ navToolbar.activate(NavigationTool.ZOOM_IN); }); sx.addEventListener(MouseEvent.CLICK,function():void{ navToolbar.activate(NavigationTool.ZOOM_OUT); }); yd.addEventListener(MouseEvent.CLICK,function():void{ navToolbar.activate(NavigationTool.PAN); }); } } }
以及Button的布局页面 Buttons.mxml
<?xml version="1.0" encoding="utf-8"?> <ss:ButtonControls xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:ss="com.component.*"> <fx:Declarations> <!-- 将非可视元素(例如服务、值对象)放在此处 --> </fx:Declarations> <s:Button label="放大" id="fd"> </s:Button> <s:Button label="缩小" id="sx"> </s:Button> <s:Button label="移动" id="yd"> </s:Button> </ss:ButtonControls>
- agslib-2.5-2011-11-30.zip (1.1 MB)
- 下载次数: 75
发表评论
-
SDE服务起不来
2015-09-15 11:17 1104安装SDE服务之后,服务启动不了解决方案一,二 ... -
web访问GIS跨域问题
2015-01-20 16:42 1337由于arcgis server是以REST方式发布服务,所 ... -
Arcgis 切片(二)
2012-09-17 15:57 1109用程序发布地图服务就必须对其进行层级划分以及对应层级的切片 ... -
Arcgis 安装部署发布关键问题(一)
2012-09-17 10:35 15581.获取数据源 shapefile数据下载地址: http ... -
Arcgis 安装
2012-09-14 13:40 01.下载对应的ARCGIS DESKTOP 2.下载安 ...
相关推荐
ArcGIS For Flex 基于 Adobe Flex 和 Flash Player,提供了一套完整的组件库,包括地图控件、图层管理、查询工具、空间分析等,使得开发者能够轻松构建交互式的 Web GIS 应用。其核心组件为 `esri.map.Map`,用于...
【ArcGIS for Flex的鹰眼效果】是一种在Web应用程序中实现高级地图导航功能的技术,它允许用户在大范围的地图上快速定位和查看细节。ArcGIS是Esri公司开发的地理信息系统(GIS)软件,用于地图制作、地理数据分析和...
1. **设置地图组件**:首先,我们需要创建一个ArcGISMapComponent实例,这是Flex中显示和操作地图的基本元素。通过设置地图服务URL,我们可以加载在线地图服务。 2. **添加图层**:在地图上添加多个图层,每个图层...
学习和实践这个主题,你需要具备Flex编程基础,了解ArcGIS for Flex API,以及对WMTS服务的工作原理有基本认识。通过深入理解和实践,你将能够创建出具有专业地图功能的Web应用,让用户在你的平台上便捷地访问和使用...
而高德地图是中国知名的在线地图服务商,提供了高质量的卫星图像和地图数据。 要将高德地图集成到ArcGIS for Flex应用中,首先需要理解ArcGIS的图层概念。图层是地图的基础元素,可以包含各种地理数据,如矢量图层...
本教程将深入讲解如何利用ArcGIS for Flex在地图上显示柱状图、饼状图和折线图,以便于用户更直观地理解地理数据。 首先,我们需要了解ArcGIS for Flex的基本概念。ArcGIS for Flex是一个基于Adobe Flex的开发库,...
《ArcGIS for Flex API 全面解析与代码实践》 ArcGIS for Flex API 是Esri公司为Flex开发者提供的一款强大的地图服务开发工具,它允许开发者在Adobe Flex环境中创建丰富的、交互式的Web GIS应用。本资源包含ArcGIS ...
- **特点**:集成了 ArcGIS API for Flex 的所有功能,并提供了一个易于使用的界面,便于非专业用户访问和交互地图数据。 - **应用场景**:广泛应用于企业内部系统、政府公共服务平台等领域,作为地图数据的展示和...
5. **创建Map服务**:`创建一个Map服务.doc`指导如何在ArcGIS Server上创建并发布地图服务,这是构建Flex应用的基础,因为它提供了地图数据的网络访问接口。 6. **MXML 语法**: MXML 是 Flex 中用于构建用户界面的...
### 一、ArcGIS Server 9.3 和 ArcGIS API for Flex 实现基本的地图浏览 #### 目的 - 在Flex程序中浏览由ArcGIS Server 9.3 发布的地图服务。 - 提供一个基本的入门示例。 #### 准备工作 1. **发布Map Service**:...
总的来说,ArcGIS for Flex API 2.0教程与PPT资源为开发者提供了全面的学习路径,不仅讲解了API的基本概念和操作,还提供了丰富的实例来加深理解。对于希望利用Flex技术构建GIS应用的人来说,这是一个宝贵的起点。...
而将ArcGIS API for Flex与天地图相结合,则可以实现对国内地理信息数据的高效利用,为用户带来更加精准、全面的地图服务。 首先,我们来理解一下“天地图”。天地图是由国家测绘地理信息局主导建设的国家级地理...
ArcGIS for Flex API则是专门为Flex开发者设计,提供了一系列接口和类库,使开发者可以访问和操作Esri的ArcGIS Server服务,包括地图服务、地理编码服务、地理处理服务等。 该离线文档是学习和参考ArcGIS for Flex ...
在本案例中,我们将深入探讨如何使用Flex与ArcGIS结合,加载天地图2.0的地图源码。 天地图是由中国国家测绘局主导的国家级地理信息公共服务平台,提供丰富的测绘地理信息资源,包括地图、影像、地形、地名等。天...
在ArcGIS for Flex中,我们可以创建专题地图来显示统计数据,通过图表的形式将这些数据与地理位置关联起来,使得地图更加生动和具有洞察力。 三、工具包与调用类的使用 1. 工具包(Toolkit):ArcGIS for Flex提供...
ArcGIS Viewer for Flex 2.5是一款基于Adobe Flex技术的GIS(地理信息系统)应用框架,它允许开发者构建交互式的地图应用程序,提供丰富的地理数据可视化和分析功能。此版本的源代码开放,为开发者提供了深入学习和...