- 浏览: 25706 次
- 性别:
- 来自: 北京
文章分类
最新评论
环境要求:
安装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 1059安装SDE服务之后,服务启动不了解决方案一,二 ... -
web访问GIS跨域问题
2015-01-20 16:42 1306由于arcgis server是以REST方式发布服务,所 ... -
Arcgis 切片(二)
2012-09-17 15:57 1054用程序发布地图服务就必须对其进行层级划分以及对应层级的切片 ... -
Arcgis 安装部署发布关键问题(一)
2012-09-17 10:35 14991.获取数据源 shapefile数据下载地址: http ... -
Arcgis 安装
2012-09-14 13:40 01.下载对应的ARCGIS DESKTOP 2.下载安 ...
相关推荐
ArcGIS API for Flex实现在Flex程序中浏览自己的ArcGIS.Server.9.3中发布的地图,一个最基本的入门例子。 目錄 一、ArcGIS.Server.9.3和ArcGIS API for Flex实现基本的地图浏览(一).................................
ArcGIS API for Flex实现在Flex程序中浏览自己的ArcGIS.Server.9.3中发布的地图,一个最基本的入门例子。 目錄 一、ArcGIS.Server.9.3和ArcGIS API for Flex实现基本的地图浏览(一).................................
系统架构是B/S,开发语言是flex,开发工具是myeclise... 采用地图是ArcGIS全国地图,开发接口为arcgis api for flex,但是程序可以拓展api 接口,可以采用其他GIS api,地图数据也可以更换其他地图数据,拓展性比较好。
(一)ArcGIS.Server.9.3和ArcGIS API for Flex实现基本的地图浏览 1 (二)ArcGIS.Server.9.3和ArcGIS API for Flex实现动态图层和瓦片图层叠加显示 5 (三)ArcGIS.Server.9.3和ArcGIS API for Flex实现自己的Toc...
ArcGIS API for Flex用于富互联网应用程序RIA(Rich Internet Applications)的开发,通过ArcGIS API for Flex可以将ArcGIS Server提供的地图资源和其它资源(ArcGIS Online)嵌入到Web应用中。 使用它可以做什么: ...
ArcGIS API for Flex 是一个强大的框架,利用它可以基于ArcGIS Server建立漂亮的富互联网应用程序 rich internet applications (RIAs) ,优点是运行速度快,用户体验效果会比目前的WEBGIS好。 ESRI的 Flex 资源中心...
(一)ArcGIS.Server.9.3和ArcGIS API for Flex实现基本的地图浏览 (二)ArcGIS.Server.9.3和ArcGIS API for Flex实现动态图层和瓦片图层叠加显示 (三)ArcGIS.Server.9.3和ArcGIS API for Flex实现自己的Toc...
使用 arcgis api for flex 可以达到下面的效果 1,显示你的地图数据并可以和数据交互 2,在服务器上执行空间处理模型并显示结果 3,基于ArcGIS Online 上的底图显示你自己的数据 4,根据属性或者位置查找你的数据并...
ArcGIS API for Flex 是一个强大的框架,利用它可以基于ArcGIS Server建立漂亮的富互联网应用程序 rich internet applications (RIAs) ,优点是运行速度快,用户体验效果会比目前的WEBGIS好。 ESRI的 Flex 资源中心...
供ArcGIS、SuperMap、Openlayers等客户端直接远程访问,支持Openlayers/ArcGIS API For Javascript/Flex等多款GIS客户端离线浏览,同时支持发布TPK,发布ArcGIS缓存为WMTS地图,助您轻松构建自己的局域网离线地图...
支持将下载的地图发布为WMTS/ArcGIS REST/TMS/Google标准服务,支持Openlayers/ArcGIS API For Javascript/Flex等多款GIS客户端离线浏览 ④支持众多易用GIS功能 BS/CS/Mobile离线访问、离线站点自动构建、国家...
1、支持多种类地图数据下载 街道、卫片、航片、地形、海图、大字体地图、三维地图、夜间地图等等上百款地图下载 GoogleEarth高程下载(精度最高30米,可自动插值下载5米、10米、20米等更高精度,高程可生成等高线、...
支持将下载的地图发布为WMTS/ArcGIS REST/TMS/Google标准服务,支持Openlayers/ArcGIS API For Javascript/Flex等多款GIS客户端离线浏览 ④支持众多易用GIS功能 BS/CS/Mobile离线访问、离线站点自动构建、国家...
1、支持多种类地图数据下载 街道、卫片、航片、地形、海图、大字体地图、三维地图、夜间地图等等上百款地图下载 GoogleEarth高程下载(精度最高30米,可自动插值下载5米、10米、20米等更高精度,高程可生成等高线、...
支持将下载的地图发布为WMTS/ArcGIS REST/TMS/Google标准服务,支持Openlayers/ArcGIS API For Javascript/Flex等多款GIS客户端离线浏览 ④支持众多易用GIS功能 BS/CS/Mobile离线访问、离线站点自动构建、国家基本...
文中首先介绍"天地图"、"天地图·甘肃"服务资源,分析其GIS服务模式,研究基于ArcGIS API For Flex接口调用"天地图"、"天地图·甘肃"地图服务的关键技术,实现了地质灾害专题数据与"天地图·甘肃"地图服务的聚合与集成,...