zoukankan      html  css  js  c++  java
  • 【ArcGIS for Server】制作并发布GP服务--缓冲分析为例

       原理:

       Geoprocessor是用py写的脚本,它简单语法,并可以调用大部分ArcGISToolBox里的现有工具,十分强大。Geoprocessing被称之为地理处理,实际上就是ToolBox里的各种tools用py连接起立,连续处理而不用反复操作单个工具,流程化了。ArcGIS还提供了一个可视化的构建Geoprocessor工具,叫ModelBuilder:如图

    image

    缓冲区分析只用到一个工具,在工具箱的Analysis Tools->Proximity->Buffer。下面就是制作一个GP包。

    1.准备数据:一个点shp图层。

             因为是一个缓冲分析,下一章我们要用SilverLight调用该服务做页面的内的缓冲分析,做一个点的缓冲分析,最后输出一个shp。新建一个工作空间,供GP使用,默认的workspace是windowsuser的目录,程序不能随时创建。然后再里面创建一个shapefile,指定其坐标系为web Mercator。

    image

    将该图层添加到ArcMap中,编辑,添加几个测试点,保存。

    2.准备GP工具的容器,新建,注意是下面那个,不是上面那个python Toolbox:

    image

    将来在ModelBuilder里创建的脚本文档只能存放在这里面。

    3.创建GP脚本,打开ModelBuilder如下操作:

    image

    然后右击ModelBuider的工作区域空白,设定其Model Properties中的Scratchworkspace:

    image

    设定该参数是让tools可以引用该参数,方式类似于window的系统变量:%scratchworkspace%;

    添加featureclass,也就是创建的点图层,然后用连接线将其指向buffer工具,然后选择提示的inputFeatures选项,这是将该FeatureClass作为Buffer的输入数据的引用:

    image

    双击Buffer工具,设定参数变量,缓冲20米,其他默认和输入路径:

    image

    注意那个引用方式。

    然后整个工具的颜色就变成可运行的状态了,如果某一个工具颜色还是白色,说明其参数没配置好,检查就可以:

    image

    4.运行测试GP:先点击验证√,然后点击运行:

    image

    最后在文件夹上刷新就看到结果,托放到ArcMap中,看看结果:

    image

    最后,最重要的是指定参数化,也就是将输入和输入都参数化,将来运行的时候可以默认我们设定的值,也可以指定参数,实用性更强大,部署到ArcGIS Server中有实用价值:

    右击point和buffferdpoint如下:

    image

    保存该GP,选择之前创建的tbx文件:

    image

    5.最后整个GP工具工作文件夹如下:

    image

    6.运行该脚本,为什么要如此?

    因为只有通过单独运行的并且成功的GP才能被发布到Server中,之前在ModelBuilder中处于调试环境,单独运行是在Python+arcpy环境下,需要设定全局变量以适应我们的脚本中scrathworkspace:

    image

    右击BufferModel,选择run,结果在是在Geoprocessing->result中,右侧就是运行成功之后,Current Seesion有一条记录:

    image

    7:发布GP服务:

    右击上图中restults,BufferModels,有一个选项,:

    image

    image

    image

    image

    出现服务发布配置的界面,点击Analysis,如果出现问题,会在下面有提示,双击该提示,一般是参数注释之类的,填上即可:

    image

    如:

    image

    依次类推,所有的参数都要有说明文档,直到Analysis没有X号就可以点发布了。

    8.在ArcGIS Server web管理页面中验证该服务:

    打开Server的服务列表,找到刚发布的服务,点到功能,点击rest服务:

    image

    image

    image

    image

    image

    image

    image

    成功。你的成功了没?

    总结:

    GP实际上是一种py脚本,可以运行在ArcMap中,可以运行在Server中,运行在Server中就作为一种服务功能,称之为Geoprocessor,很形象,地理处理器。简化了以前使用.net开发一个服务器扩展的麻烦(SEO),相当的简单,对于GIS开发者普遍开发水平不高的情况下,有很强的使用价值。缺点就是,性能慢。

    Continued:下一节,我们讲使用SilverLight调用该服务,在前端绘制一个点的缓冲分析,很有意思哦,期待吧。

    纸上得来终觉浅,绝知此事要躬行
  • 相关阅读:
    P1478 陶陶摘苹果(升级版)
    洛谷 P1008 三连击
    1412:二进制分类
    1411:区间内的真素数
    判断素数
    关于小数
    一本通题库1159斐波那契数列
    一本通题库1161转进制
    一本通题1051
    基础算法——数据排序——冒泡
  • 原文地址:https://www.cnblogs.com/d2ee/p/3641279.html
Copyright © 2011-2022 走看看