当前位置: 首页 > news >正文

深圳有几个区县/优化大师电视版

深圳有几个区县,优化大师电视版,衡阳市住房和城乡建设局官方网站,铁路建设监理网站目的: 1.ArcGIS API for Flex用GeoprocessingServices实现网络分析中的服务区分析,本例子根据driveTimes值分析出在指定时间内的区域范围情况,效果图中有内到外分别是1分钟、2分钟、3分钟的行车区域范围情况。准备工作:1.本来例子…
目的:
1.ArcGIS API for Flex用GeoprocessingServices实现网络分析中的服务区分析,本例子根据driveTimes值分析出在指定时间内的区域范围情况,效果图中有内到外分别是1分钟、2分钟、3分钟的行车区域范围情况
准备工作:
1.本来例子采用的数据是SanFrancisco数据(ArcTutor\GP Service Examples\DriveTimePolygons),在ArcGIS.Server.9.3发布一个叫SanFranciscoBasemap的Map Service(SanFranciscoBasemap.mxd)
2.在ArcGIS.Server.9.3发布一个叫DriveTimePolygonsService的Geoprocessing Service,关于Geoprocessing模型的制作以及Geoprocessing Service的发布设置请参考http://webhelp.esri.com/arcgisserver/9.3/java/index.htm#geoprocessing/guide_-1963186772.htm页面中的Example了,讲述的很详细了。
完成后的效果图:


开始:
1.首先对Geoprocessing Service进行一下介绍,从ags9.2开始可以将ArcTool 做为GeoProcessing service发布,在ArcGIS Server中使用,这样就能借助ArcTool为ags提供非常强大简单好用的功能,如buffer分析、网络分析、数据裁剪....等等。Geoprocessing Service发布后可以提供给不同的客户端使用如Web Mapping Applications, ArcGIS Explorer, and ArcGIS Desktop,在ags9.3中GeoProcessing service也同时通过rest api的方式提供给客户端进行编程使用,在flex api、javascript api中由于不能直接像Web Mapping Applications一样直接通过调用Ao的方法实现复杂的功能,这样GeoProcessing service就显得非常的有用了,它为flex api、javascript api提供了实现复杂功能的途径如buffer分析、网络分析等,当然buffer分析可以还可以用GeometryService实现了前几篇中有详细的讲解了。
2.介绍完启动GeoProcessing service的概念接下来用GeoProcessing service实现网络分析中的服务区分析为实例来讲解GeoProcessing service在flex api中的应用。
3.启动Flex Builder3新建工程以及引入1.0正式版ArcGIS API for Flex library的开发包
4.新建ServiceAreaGP.mxml页面,添加Map、ArcGISDynamicMapServiceLayer、GraphicsLayer等并且设置相应的属性。具体代码如下:
<mx:Canvas width="482" height="426" borderStyle="solid" borderThickness="3" verticalCenter="16" left="10">
    
<esri:Map id="myMap" logoVisible="false">
        
<esri:ArcGISDynamicMapServiceLayer url="http://jh-53a435fbc0e8/ArcGIS/rest/services/SanFranciscoBasemap/MapServer" />
        
<esri:GraphicsLayer id="myGraphicsLayer" symbolFunction="mySymbolFunction" />
    
</esri:Map>
    
</mx:Canvas>
5.接下来添加ToggleButtonBar用来进行地图漫游和点点击服务器分析功能之间的切换:
<mx:ToggleButtonBar verticalCenter="-215" itemClick="itemClickHandler(event)" left="10">
        
<mx:dataProvider>
        
<mx:Array>
        
<mx:Object icon="{Pan}" />
        
<mx:Object icon="{point}" />
        
</mx:Array>
        
</mx:dataProvider>
    
</mx:ToggleButtonBar>
6.添加图形显示样式定义,包括点样式以及3种颜色不同的面样式:
<esri:SimpleMarkerSymbol id="sms" style="diamond" color="0x000000" size="10" alpha="0.7"/>
    
<esri:SimpleFillSymbol id="rFill" alpha="0.8" color="0xFF0000"/>
    
<esri:SimpleFillSymbol id="gFill" alpha="0.8" color="0x00FF00"/>
    
<esri:SimpleFillSymbol id="bFill" alpha="0.8" color="0x0000FF"/>
7.当然还需添加esri:Draw控件了,进行服务区分析时先在地图上画一个点用的:
<esri:Draw id="drawToolbar" map="{myMap}" graphicsLayer="{myGraphicsLayer}" drawStart="drawStartHandler(event)" drawEnd="drawEndHandler(event)" />
8.最后当然是本例子的主角esri:Geoprocessor控件了,它的url值填写我们上面发布的DriveTimePolygonsService的Geoprocessing Service的rest地址:
<esri:Geoprocessor id="gp" url="http://jh-53a435fbc0e8/ArcGIS/rest/services/DriveTimePolygonsService/GPServer/CalcDriveTimePolygons" />
9.在完成界面的显示代码后开始在mx:Script中编写功能代码,首先是GraphicsLayer的symbolFunction="mySymbolFunction",这个是对添加到GraphicsLayer的元素进行样式设置的方法:
private function mySymbolFunction(graphic:Graphic):Symbol
ExpandedBlockStart.gifContractedBlock.gif            
{
                
var result:Symbol;
                
switch(graphic.geometry.type)
ExpandedSubBlockStart.gifContractedSubBlock.gif                
{
                    
case Geometry.MAPPOINT:
ExpandedSubBlockStart.gifContractedSubBlock.gif                    
{
                        result
=sms;
                        
break;
                    }

                    
case Geometry.POLYGON:
ExpandedSubBlockStart.gifContractedSubBlock.gif                    
{
                        
var toBreak:Number= graphic.attributes.ToBreak;
                        
if(toBreak==1)
ExpandedSubBlockStart.gifContractedSubBlock.gif                        
{
                           result
=rFill;
                        }

                        
else if(toBreak==2)
ExpandedSubBlockStart.gifContractedSubBlock.gif                        
{
                           result
=gFill;
                        }

                        
else
ExpandedSubBlockStart.gifContractedSubBlock.gif                        
{
                           result
=bFill;
                        }

                    }

                }

                
return result;
                
            }
10.接下来按照事件执行顺序说明代码,ToggleButtonBar控件的itemClick事件的itemClickHandler(event)方法:
private function itemClickHandler(event:ItemClickEvent):void
ExpandedBlockStart.gifContractedBlock.gif            
{
                
switch(event.index)
ExpandedSubBlockStart.gifContractedSubBlock.gif                
{
                    
case 0:
ExpandedSubBlockStart.gifContractedSubBlock.gif                    
{
                        drawToolbar.deactivate();
                        
break;
                    }

                    
case 1:
ExpandedSubBlockStart.gifContractedSubBlock.gif                    
{
                        drawToolbar.activate(Draw.MAPPOINT);
                        
break;
                    }

                }

            }
11.然后是Draw控件的drawStart事件的drawStartHandler(event)方法:
private function drawStartHandler(event:DrawEvent):void
ExpandedBlockStart.gifContractedBlock.gif            
{
                myGraphicsLayer.clear();
            }
12.然后是Draw控件的drawEnd事件的drawEndHandler(event)方法:
private function drawEndHandler(event:DrawEvent):void
ExpandedBlockStart.gifContractedBlock.gif            
{
                
var mapPoint:MapPoint=event.graphic.geometry as MapPoint;
                
//调用服务区分析的方法
                serviceArea(mapPoint);
            }
13.然后是serviceArea方法:
//进行服务区分析
            private function serviceArea(mapPoint:MapPoint ):void
ExpandedBlockStart.gifContractedBlock.gif            
{
                
var graphic:Graphic=new Graphic(mapPoint);
                
var featureSet:FeatureSet = new FeatureSet([graphic]);
                
var driveTimes:String = "1 2 3";
                
//关于params要根据具体的GPServer所需要的参数进行设置
ExpandedSubBlockStart.gifContractedSubBlock.gif
                var params:Object = {
                    
"InputFacilities":featureSet,
                    
"Drive_Time_Values":driveTimes
                }
;
                
//执行服务区分析
                gp.execute(params, new AsyncResponder(onResult,onFault));
            }
14.在上面的serviceArea方法执行后最终根据成功与否分别调用onResult和onFault方法:
//Geoprocessor成功把结果添加到myGraphicsLayer进行显示
            private function onResult(gpResult:ExecuteResult,token:Object = null):void
ExpandedBlockStart.gifContractedBlock.gif            
{
                
var pv : ParameterValue = gpResult.parameterValues[0];
                
var fs : FeatureSet = pv.value as FeatureSet;
                myGraphicsLayer.graphicProvider 
= fs.features;
            }

            
            
//Geoprocessor失败显示失败信息
            private function onFault(info:Object, token:Object = null):void
ExpandedBlockStart.gifContractedBlock.gif            
{
                Alert.show(info.toString());
            }
15.这样通过Geoprocessing Service相当简单的完成了一个服务区分析的例子。

转载于:https://www.cnblogs.com/hll2008/archive/2008/11/07/1329177.html

http://www.lbrq.cn/news/1350253.html

相关文章:

  • 网站建设日志文件/逆冬seo
  • wap网站下载/日本比分算1:1
  • 王烨辉简历/嘉兴seo外包服务商
  • 公司架设网站费用怎么做分录/企业营销策划书范文
  • 个安装wordpress/北京搜索关键词优化
  • 网上有几个购物平台/百度问答优化
  • 南通优普企业网站建设/网址解析ip地址
  • 教学类网站怎么做/seo整站优化哪家好
  • 企业网站建设国内外现状/百度推广和优化有什么区别
  • 给朋友做的相册网站没有了/北京seo网站优化培训
  • 搭建网站需要什么技能/在线网页制作
  • 百度突然搜不到网站/南宁排名seo公司
  • magento做的网站/seo教程seo教程
  • 个人网站建立 学生/全国疫情高峰感染进度查询
  • 做3dmax的网站/沈阳关键词优化费用
  • 做网站都需要了解什么/windows优化大师软件介绍
  • 安徽茶叶学会 网站建设/二维码引流推广的平台
  • 网站怎样做域名绑定/百度移动点击排名软件
  • 做门户网站用什么技术好/seo网站推广主要目的不包括
  • 做平行进口的汽车网站/360营销推广
  • 哈尔滨的网站建设公司哪家好/品牌营销的概念
  • 网站怎么做必须交钱吗/网站运营怎么做
  • 昆明企业建站模板/淘宝推广方法有哪些
  • 网络营销推广网站收录哪些/韶山百度seo
  • php 企业网站 后台图片上传/百度我的订单
  • python可以做网站/查域名
  • 网站红色搭配/seo软件简单易排名稳定
  • 微信昵称大全/指定关键词seo报价
  • 网站制作过程简介/超级外链在线发布
  • 网站解析后几天可以访问/自媒体有哪些平台
  • stm32cubeide memory analyzer 不显示BUG
  • 【关于Java 8 的新特性】
  • AI巨模型对决2025:五强争霸,谁能称王?
  • 分布式文件系统07-小文件系统的请求异步化高并发性能优化
  • 【Linux】调试器gdb/cgdb的使用
  • 【运维进阶】DHCP服务配置和DNS域名解析