arcgis for android怎么用GP服务实现地图导航,就是最短路径查询

如题所述

  本文我们主要将以下三部分内容:

  1.学会使用使用ArcMap构建等值线GP服务模型

  2.学会使用ArcGIS Server发布我们创建的GP服务模型

  3.学会ArcGIS Runtime for Android下异步调用GP服务,绘制等值线

  其中前两部分可本博客其他文章有详细说明可参考:

  http://www.cnblogs.com/potential/archive/2012/10/27/2742355.html

  这篇文章使用的是10.0的ArcGIS Server,而这里我们使用的是10.1的 ArcGIS Server,因此在此我们也会提到10.1下如何来发布我们的服务。如果您熟悉GP服务的发布过程,可直接跳转至第三部分。

  

  第三部分的内容主要解决以下几个问题:

  1.如果根据现有的坐标信息和对应的属性数据,构造相应的地理要素?例如:现在有某个省的个监测点的降雨数据(监测点经纬度,及监测点的降雨量),那么如何在地图上对这些监测点的数据进行反映?

  2.如何在Android平台上根据这些监测点的数据来对整个地区进行插值呢?并将等值线添加到Android移动平台的地图中?

  3.如何根据等值线的值,动态设置其不同的颜色呢?

  

  一、使用ArcMap构建等值线的GP服务模型

  

  既然我们要创建等值线那么,肯定需要绘制等值线的数据,即进行等值线绘制的点。而等值线又是怎么得到的呢?很简单,根据这些点的位置和其表示的值(如该店的降雨量,浓度值等)对其进行插值。插值的过程就是根据已有的点来计算某一未知区域的点的浓度值。

  常用的插值方法有拉格朗日插值,克里金插值,反距离插值,样条函数插值等。一般情况下我们选择反距离和克里金插值,如果想得到非常平滑的插值结果,则可以采用三次样条插值。

  插值完成之后,实际上得到的是更多的点,而绘制等值线就是将具有相同属性值的点连接起来得到等值线。通常情况下我们需要自己代码完成插值过程和追踪等值点的算法。并连接等值点。但是在ArcGIS中有内置的插值工具和等值线工具供我们使用。但是在ArcGIS中各个功能模块都是一个单独的工具,而通过上面的分析我们知道绘制等值线至少有两个过程:1.插值,2.依据插值结果绘制等值线

  因此依据上面的分析我们通过ArcMap的Model Builder可以构建如下的工具模型:

  

  

  但是通常情况下上述得到的等值线有可能不会很平滑,如果需要较平滑的等值线可以再加上一个平滑工具,如:

  

  通过加上平滑工具,设置平滑容差,可以得到较为平滑的等值线。

  

  二、 发布GArcMap构建的GP服务模型

  

  在ArcGIS Server 10.1中,发布GP服务的方式较之前有所改变,不再是发布GP服务模型本身,而是发布在GP服务模型在ArcMap运行之后的结果,如图所示:

  

  

  然后出现发布服务的选项:

  

  

  publish a service:直接将现有模型结果发布为GP服务。
  Save a service definition file:保存为服务定义文件,可以用于在ArcGIS Server Manager中发布为服务。
  Overwrite an existing service:覆盖当前的ArcGIS Server 服务。

  这里我们选择第二个选项,Save a service definition file.这样的好处是可以在ArcGIS Manager上远程发布。同时sd文件也很容易迁移到其他的机器。
  保存为sd文件之后,登陆ArcGIS Server Manager页面,点击发布服务:

  

  

  然后点击选择文件,选择之前在ArcMap中保存的服务定义文件(.sd).然后点击下一步。

  

  之后选择发布服务的名称,和所在服务的目录。

  

  最后点击下一步,发布服务。在服务发布之后登陆服务的rest页面可以查看服务的具体参数信息:

  接下来我们就需要开始编码来调用我们这里的GP服务实现绘制等值线的功能。到此我们的绘制等值线的GP服务以及发布完成,接下来就是编码的过程。当然为了确保您的GP服务能够正确运行,建议在编码之前,通过ArcMap来验证一下您的GP服务。验证过程可参考之前的博文,鉴于篇幅在此不再赘述。
温馨提示:答案为网友推荐,仅供参考
相似回答