ArcGis flex 应用GP 实现最短路径

本文详细介绍如何利用ArcGIS进行最短路径分析,包括数据准备、模型制作及测试、GP服务发布与测试等步骤。此外还介绍了如何汉化路径描述。

最近用arcgis GP服务做了几个Demo,为了不丢失自己的实践经验,我决定把过程记下来!!!

 

 

 

 

(一)最短路径分析

ArcGIS <wbr>Flex(9.3)+GP服务完成最短路径分析(1)
  以上为效果图,在此感谢http://www.tzwhx.com/newOperate/html/5/51/514/15549.html博文给我的启发,我用自己的数据做了实验,并且汉化了路径描述(因为从英文直接汉化,因此可能有点Ehinese的不足),下面描述整个模型制作和程序实现过程:

(1)数据准备

   这里必须是使用网络数据集,我从ShapeFile生成,在ArcCatalog里面操作,首先建立一个叫TestRouting的空文件夹,同时建立Scrach和ToolData子文件夹,Scrach用来存放模型生成的脚本结果,ToolData饱含制作模型的原数据,再建立一个叫TestRouting的工具箱,像下图这样子:ArcGIS <wbr>Flex(9.3)+GP服务完成最短路径分析(1)

   在ToolData文件夹里放入我们的实验数据,并制作网络数据集,当然这个实验数据不是简单的道路数据,包括一些网络数据集必须的字段(zbcov.shp),单击右键,选择New Network Dataset...ArcGIS <wbr>Flex(9.3)+GP服务完成最短路径分析(1)
    一些基本设置都是默认的,但是有一点必须注意,在下面这个窗口中,需要对elevation数据做以下设置,field要选择自己数据中对应的字段。

ArcGIS <wbr>Flex(9.3)+GP服务完成最短路径分析(1)

  一路next,生成下面的两个数据,zbcov_ND和zbcov_ND_Junctions。
ArcGIS <wbr>Flex(9.3)+GP服务完成最短路径分析(1)

(2)模型制作
  在ArcMap中打开zbcov_ND,并在ArcToolBox中加入刚才新建的TestRouting,在TestRouting上点击右键,new一个model,命名为ShortestRoute,按照下面的pic制作最短路径分析的模型.

ArcGIS <wbr>Flex(9.3)+GP服务完成最短路径分析(1)

    
  制作模型需要注意很多,直接用Arcgis例子里的当然不是不行,但是制作模型本来也是一种乐趣,并且有助于理解ArcGIS的一些算法过程,由于我自己在这个过程碰到了很多问题,因此打算一步步把过程写下来。首先要加入Network的扩展模块,Tools->Extension,选择Network Analyst复选框。

  A.将Network Analyst Tools工具箱打开,选择Analysisi->Make Route Layer,拖入Model窗口,当然如果找不到这个工具也不必郁闷,直接在Search里面搜就行了。双击Make Route Layer工具,在Input analysis network中选择我们在ArcMap中添加的图层zbcov_ND,其他的选项可以都选择默认。这时在模型中,输入项变成蓝色,工具变成黄色,输出为绿色。

ArcGIS <wbr>Flex(9.3)+GP服务完成最短路径分析(1)

ArcGIS <wbr>Flex(9.3)+GP服务完成最短路径分析(1)
 B. 再找到Add Locations工具,拖入Model窗口。右键单击工具,选择Make Variable->From Parameter-> Input locations。

ArcGIS <wbr>Flex(9.3)+GP服务完成最短路径分析(1)

C.在Input locations这个输入项上单击右键,选择properties...,给这个数据项做如下参数设置,data type是Feature Set,symbology from选择zbcov_ND_Junctions.shp,其实后面这个是确定你在输入Feature时的样式和包含字段,可以选择ArcGIS里面保存的样式,我这个为了方便随便选的一个点数据层,表明样式随选择的数据层而定,加入的点数据和zbcov_ND_Junctions的字段是一样的。ArcGIS <wbr>Flex(9.3)+GP服务完成最短路径分析(1)
 D.双击Add locations工具,Input network analysis layer选择之前生成的Route层,Sub layer为Stops,表明我们要在Route层加入最短路径的站点,此外,还有barriers,表明障碍物。Input locaations为上一步加入的层,同时在Field mappings做字段匹配,因为我们选择了zbcov_ND_Junctions作为Input locations的symbol层,因此只有两个字段FID,和Zelev,因此我们只在Name中选择FID这个字段。其他字段可以选择默认。
ArcGIS <wbr>Flex(9.3)+GP服务完成最短路径分析(1)

ArcGIS <wbr>Flex(9.3)+GP服务完成最短路径分析(1)
F.在Model窗口内再拖一个Add Locations工具,步骤和添加站点的步骤差不多,是为路径分析添加障碍物的过程。为了区分添加站点,为添加障碍物的子模型修改名字,变为Add Barriers,输入项变为Input Barriers,另一个输入项为之前生成的结果图层Route (2)。在Add Barriers中的设置sub layer要选择barriers。Fields mapping仍然只设置name为FID。如下。

ArcGIS <wbr>Flex(9.3)+GP服务完成最短路径分析(1)

ArcGIS <wbr>Flex(9.3)+GP服务完成最短路径分析(1)
G.在Model窗口拖入Solve工具,双击,在Input network Analysis layer中选择上一步生成的Network Analyst Layer图层,如下图。

ArcGIS <wbr>Flex(9.3)+GP服务完成最短路径分析(1)

H.生成的结果做两个处理,一种直接把路径结果作为附加图层显示出来,一种生成路径描述xml,将select data工具和Directions工具拖入Model窗口,select data工具用ArcGIS <wbr>Flex(9.3)+GP服务完成最短路径分析(1)直接与上一步生成的Route (3)连起来,双击select data工具,Child Data Element (optional)选择Routes,表明输出的结果图层是路径,双击Directions工具,Output file type选择xml,Output directions file选择生成的xml路径,即为我们最开始生成的Scratch文件夹。

ArcGIS <wbr>Flex(9.3)+GP服务完成最短路径分析(1)

   当然生成的xml文件路径还有另外一种设置方式,在ArcMap窗口选择Tools->Options->Geoprocessing选项卡,做如下设置,Overwrite...表明每生成新的xml文件将覆盖以前的结果;log...表明有覆盖操作会有警告。

ArcGIS <wbr>Flex(9.3)+GP服务完成最短路径分析(1)

   同时在Environments选择Scratch Workspace为最开始生成的Scrach文件夹。

ArcGIS <wbr>Flex(9.3)+GP服务完成最短路径分析(1)

    这时Model窗口里的Direnctions工具的xml生成路径可以直接设置如下。

ArcGIS <wbr>Flex(9.3)+GP服务完成最短路径分析(1)
    一般我们会选择第二种路径设置方式,便于多个生成文件的统一管理。

I.开始做模型的时候以为这样就完事了,其实疏忽了一个非常容易丢掉但又很重要的环节,就是确定模型的输入输出项,如果我们不做这一步,模型就是空的。这个模型有两个输入项,Input locations(设置站点),Input barriers(设置障碍),两个输出项,ShortestRoute和Route_Directions.xml,zbcov_ND其实也是一个输入项,但是因为我们制作模型时就已经设置了,不作为用户输入。设置方式如下,右键单击设置项,选择Model Parameter。

ArcGIS <wbr>Flex(9.3)+GP服务完成最短路径分析(1)

       最后的模型如下图:

ArcGIS <wbr>Flex(9.3)+GP服务完成最短路径分析(1)

(3)测试模型

    保存刚生成的模型,在工具箱中双击模型,可以看到模型框框。在ArcMap的图层上点击,输入两个站点和一个障碍,运行后就可以看到结果作为一个图层显示出来。
ArcGIS <wbr>Flex(9.3)+GP服务完成最短路径分析(1)


ArcGIS <wbr>Flex(9.3)+GP服务完成最短路径分析(1)

 (4)发布GP服务

    将刚刚做好的ShortestRoute模型拖入ArcMap中的Layers里,作为第一个图层,zbcov_ND作为分析层为第二层,保存为一个mxd(TestRoutingService.mxd)。同时zbcov.shp原数据单独保存为一个mxd(TestRoutingBasemap.mxd),作为路径分析的底图,如果有其他数据也可以加进去,这个不是重点。在ArcCatalog中可以看到文件的格局如下。

ArcGIS <wbr>Flex(9.3)+GP服务完成最短路径分析(1)

ArcGIS <wbr>Flex(9.3)+GP服务完成最短路径分析(1)

   TestRoutingBasemap直接发布为一个MapService,不做赘述;TestRoutingService发布为一个GeoprocessingService,具体步骤如下:

  A.之前要Add ArcGIS Server,然后Add GIS Service,Type选择Geoprocessing Service,并给服务起一个名字。下一步。。。

   ArcGIS <wbr>Flex(9.3)+GP服务完成最短路径分析(1)

B.选择Synchronous执行方式,选择发布一个map的方式,并在Data Frame中选择Layers,选中Show Messages复选框。至于Synchronous和Asynchronous的区别,前者是同步执行,用于不很复杂的GP服务,效率较高;后者是异步执行,不做赘述。下一步。。。选择默认设置,完成。

ArcGIS <wbr>Flex(9.3)+GP服务完成最短路径分析(1)

(5)测试GP服务

    打开一个空的ArcMap,从catalog中直接把刚刚发布的BaseMap拖入Layers,在ArcToolBox中将刚发布的Geoprocessing服务加载进来,这时可以看到模型的图标变为一个小斧头ArcGIS <wbr>Flex(9.3)+GP服务完成最短路径分析(1)


    双击这个模型,进行参数输入,执行ArcGIS <wbr>Flex(9.3)+GP服务完成最短路径分析(1)

    如果发布的模型没有问题,将会出现如下的结果。

 ArcGIS <wbr>Flex(9.3)+GP服务完成最短路径分析(1)

   (6)在Flex中调用模型。

     底图的服务url为"http://localhost/arcgis/rest/services/testRoutingBm/MapServer";

     GP服务的url为"http://localhost/arcgis/rest/services/DriveTime/GPServer/ShortestRoute2".

     因为是在自己的机器上发布的,因此都是localhost...

     代码直接参考http://www.tzwhx.com/newOperate/html/5/51/514/15549.html的博文,贴不下就不贴了。

  GP调用的关键为下面的语句:

  var params:Object = {
                    "Input_locations":featureSet,
                    "Input_barriers":featureSet2
                    };
                    //进行分析成功调用onResult方法,失败调用onFault方法
                    gp.execute(params, new AsyncResponder(onResult,onFault));

 这里的Input_locations和Input_barriers就是模型的两个输入项,通过GP服务的URL可以直接看到详细的描述,如下为Input_barriers的详细描述。

ArcGIS <wbr>Flex(9.3)+GP服务完成最短路径分析(1)

 gp.execute执行结果通过AsyncResponder传入onResult,如果出错,通过onFault执行。

 (7)汉化输入路径

   输出路径的描述默认是英文,这是比较郁闷,因此想办法汉化一下。找到%ArcGIS安装路径%/NetworkAnalyst/Directions,我的是C:/Program Files/ArcGIS/NetworkAnalyst/Directions,将里面的directions.lng文件英文的描述全部改为中文,虽然比较麻烦琐碎,但是这时一个过程(最好备份一下以前的directions.lng以防不测)。另存为需要注意选择UTF-8的编码方式。

最上面改成下面的

[General]
Encoding = UTF-8
Default = zh_cn


   再次运行程序,会发现Directions表格里面的路径描述都变为中文。

 

    终于写完了第一篇,下一篇将是最近设施查找……有时间再写,先贴个效果图。

ArcGIS <wbr>Flex(9.3)+GP服务完成最短路径分析(1)

内容概要:本文介绍了ENVI Deep Learning V1.0的操作教程,重点讲解了如何利用ENVI软件进行深度学习模型的训练与应用,以实现遥感图像中特定目标(如集装箱)的自动提取。教程涵盖了从数据准备、标签图像创建、模型初始化与训练,到执行分类及结果优化的完整流程,并介绍了精度评价与通过ENVI Modeler实现一键化建模的方法。系统基于TensorFlow框架,采用ENVINet5(U-Net变体)架构,支持通过点、线、面ROI或分类图生成标签数据,适用于多/高光谱影像的单一类别特征提取。; 适合人群:具备遥感图像处理基础,熟悉ENVI软件操作,从事地理信息、测绘、环境监测等相关领域的技术人员或研究人员,尤其是希望将深度学习技术应用于遥感目标识别的初学者与实践者。; 使用场景及目标:①在遥感影像中自动识别和提取特定地物目标(如车辆、建筑、道路、集装箱等);②掌握ENVI环境下深度学习模型的训练流程与关键参数设置(如Patch Size、Epochs、Class Weight等);③通过模型调优与结果反馈提升分类精度,实现高效自动化信息提取。; 阅读建议:建议结合实际遥感项目边学边练,重点关注标签数据制作、模型参数配置与结果后处理环节,充分利用ENVI Modeler进行自动化建模与参数优化,同时注意软硬件环境(特别是NVIDIA GPU)的配置要求以保障训练效率。
内容概要:本文系统阐述了企业新闻发稿在生成式引擎优化(GEO)时代下的全渠道策略与效果评估体系,涵盖当前企业传播面临的预算、资源、内容与效果评估四大挑战,并深入分析2025年新闻发稿行业五大趋势,包括AI驱动的智能化转型、精准化传播、首发内容价值提升、内容资产化及数据可视化。文章重点解析央媒、地方官媒、综合门户和自媒体四类媒体资源的特性、传播优势与发稿策略,提出基于内容适配性、时间节奏、话题设计的策略制定方法,并构建涵盖品牌价值、销售转化与GEO优化的多维评估框架。此外,结合“传声港”工具实操指南,提供AI智能投放、效果监测、自媒体管理与舆情应对的全流程解决方案,并针对科技、消费、B2B、区域品牌四大行业推出定制化发稿方案。; 适合人群:企业市场/公关负责人、品牌传播管理者、数字营销从业者及中小企业决策者,具备一定媒体传播经验并希望提升发稿效率与ROI的专业人士。; 使用场景及目标:①制定科学的新闻发稿策略,实现从“流量思维”向“价值思维”转型;②构建央媒定调、门户扩散、自媒体互动的立体化传播矩阵;③利用AI工具实现精准投放与GEO优化,提升品牌在AI搜索中的权威性与可见性;④通过数据驱动评估体系量化品牌影响力与销售转化效果。; 阅读建议:建议结合文中提供的实操清单、案例分析与工具指南进行系统学习,重点关注媒体适配性策略与GEO评估指标,在实际发稿中分阶段试点“AI+全渠道”组合策略,并定期复盘优化,以实现品牌传播的长期复利效应。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值