前阵子对ArcGIS API For JavaScript的网络分析有兴趣,但是不知道其数据是如何获取的。

查阅API知道,AJS的网络分析只有三个功能:最短路径(RouteTask)、最近设施点(ClosestFacilityTask)和服务区(ServiceAreaTask)。

而这三个分析类依赖的是ArcGIS Server上的NAServer(网络分析服务),于是

如何发布NAServer,就成了我近期的研究事宜,所幸的是,这方面的资料非常丰富。

需要注意的是:

NAServer依赖于MapServer。

也就是说,必须存在MapServer,才能在MapServer上启用NAServer。

MapServer是NAServer的必要条件,但不是充分条件。

想启用NAServer,还需要一个正常的网络数据集。

有关如何制作网络数据集,请参考我之前的博文:点我,或者在安装了ArcGIS for Desktop的电脑上查阅帮助文档(推荐看我的,比官方的简洁粗暴)。

1. 数据准备

在这里,我使用了ESRI提供的网络数据集,就不自己制作了。

读者只要知道,一个高质量的网络数据集是网络分析的基石,就足够了。

数据来源是GP Service Examples

我选用的是Network Analyst文件夹的SanFrancisco.gdb数据。

可以看到Transportation要素数据集中已经准备好了Streets_ND网络数据集。

2. 在ArcMap中打开网络数据集并创建三个对应图层

三个图层是:路径、服务区、最近设施点。

见下图:

2.1 先打开网络数据集

2.2 创建三个网络分析图层:路径、服务区、最近设施点

图2是打开了网络分析窗口。

3. 发布MapServer与NAServer

这一步假设已经在本机安装了与ArcMap同版本的ArcGIS for Server,本人使用的是Server 10.4;或已经知道了远程ArcGIS for Server服务地址。

及登陆Server的账号密码。

发布!

3.1 假设读者没有在ArcMap或Catalog连接过Server(看过的直接跳到3.2 发布MapServer)

这个时候点击有个+号那个按钮

这里填写的是Server的地址和登陆账号密码,其余默认。点击完成,ArcMap就会连接到Server了。如果是远程地址就不是localhost了哦~

3.2 发布MapServer

给即将发布的服务命个名,连接就选已经连接上的ArcGIS Server服务器,localhost_6443就是我本地6443端口上的ArcGIS Server服务器。

我把这个服务放到一个新的文件夹里去,名为ForTest。登陆过ArcGIS for Server网页管理页面的人会知道,服务跟文件一样,存放于不同的目录(文件夹)下。

例如根目录下就有一个默认的MapServer:

点击继续。

此时出现【服务编辑器】窗口,在功能选项卡中勾选Network Analysis功能。此时,可以点击分析,确保没有错误,警告无所谓,一般都会有十几二十个警告:

然后点击服务编辑器右上角的【发布】即可。静等发布。

期间会提示:

选确定。

恭喜,发布成功。

————————————————

至此,MapServer发布成功,相当于一个mxd文档就丢到服务器上面去了;

而那个网络数据集就支撑起了NAServer这个服务类型,三个网络分析图层就分别是NAServer中的三个图层。(听不懂?没关系,等下就知道了)

3.3 在ArcMap中查看Server上的服务

我们还可以顺便在ArcMap中查看AJS中需要的REST URL:

如图所示,右键单击刚刚发布的SanFranciscoNetwork这个MapServer的服务属性

选择Network Analysis选项卡,就可以找到REST URL了。这个很重要,见3.5 查看NAServer

3.4 在Server网页端查看服务

登陆ArcGIS Server管理页,找到ForTest文件夹,可以看到多了一个SanFranciscoNetwork地图服务,跟桌面端是一样的。

3.5 查看NAServer

把NAServer的REST URL复制粘贴到浏览器地址栏,打开:

Route Layers、Closest Facility Layers、Service Area Layers三个图层就是我们需要用于AJS中实例化的图层了,见4举例:

4. 在AJS中使用NAServer

4.1 RouteTask

这里是使用最短路径任务,需要依赖NAServer的Route Layers:

var routeTask = new RouteTask({
url: "https://localhost:6443/arcgis/rest/services/ForTest/SanFranciscoNetwork/MapServer/NAServer/路径"
});

4.2 ClosestFacilityTask

var closestFacilityTask = new ClosestFacilityTask({
url: "https://localhost:6443/arcgis/rest/services/ForTest/SanFranciscoNetwork/MapServer/NAServer/最近服务区"
});

4.3 ServiceAreaTask

var serviceAreaTask = new ServiceAreaTask({
url: "https://localhost:6443/arcgis/rest/services/ForTest/SanFranciscoNetwork/MapServer/NAServer/服务区"
});

NAServer后面紧跟着三个图层的名字,我不知道能不能在url里使用中文名,建议大家创建网络分析图层的时候使用英文名吧。

5. 总结

发布NAServer是依赖于MapServer的,这点无疑。

NAServer又依赖于网络数据集。

想要在WebGIS上使用NAServer的三个功能:路径、服务区、最近设施点,就得在发布MapServer时创建三种网络分析图层。

在AJS中使用对应的网络分析功能,只需在NAServer的REST URL后面补上网络分析图层名即可。

这就是全文啦!不懂的可以联系我的email: onsummer@foxmail.com

本人不提供软件,请自行查找。

ArcGIS 网络分析[3] 发布NAServer到ArcGIS for Server(以Server 10.4为例)的更多相关文章

  1. 【教程】发布NAServer到ArcGIS Server 10.4上[超详细]

    前阵子对ArcGIS API For JavaScript的网络分析有兴趣,但是不知道其数据是如何获取的. 查阅API知道,AJS的网络分析只有三个功能:最短路径(RouteTask).最近设施点(C ...

  2. ArcGIS 网络分析[0] 介绍与博文目录【更新中】

    网络分析是个热点,理论上是属于计算机图形学和数据结构的,GIS以此为基础做出应用. 以下列举本人在学习中遇到的网络分析问题与经验总结. 1. 软件平台及数据准备 平台:Windows 10 操作系统, ...

  3. ArcGIS网络分析之Silverlight客户端最近设施点分析(四)

    原文:ArcGIS网络分析之Silverlight客户端最近设施点分析(四) 在上一篇中说了如何实现最近路径分析,本篇将讨论如何实现最近设施点分析. 最近设施点分析实际上和路径分析有些相识,实现的过程 ...

  4. ArcGIS网络分析之Silverlight客户端路径分析(三)

    原文:ArcGIS网络分析之Silverlight客户端路径分析(三) 首先贴上最终的效果图: a.路径查询 2.最近设施点查询 3.服务区分析 说明: 1.以上的示例使用的数据是随意在ArcMap中 ...

  5. 【转】从 ArcGIS for Desktop 发布地图服务

    原文链接:http://resources.arcgis.com/zh-CN/help/tutorials/01z300000007000000.htm 本教程的目的是将地图服务直接从 ArcGIS ...

  6. [置顶] ArcGIS发布最新的 ArcGIS Runtime SDK for Android v10.1.1

    因为希望有统一的地图解决方案,就是PC端,移动端的数据一致,看到ArcGIS的最新发布,感兴趣的可以围观. 链接:http://blogs.esri.com/esri/arcgis/2013/09/0 ...

  7. ArcGIS 网络分析[1] 介绍与博文目录【更新中】

    网络分析是个热点,理论上是属于计算机图形学和数据结构的,GIS以此为基础做出应用. 以下列举本人在学习中遇到的网络分析问题与经验总结. 平台:Windows 10操作系统,ArcGIS for Des ...

  8. [原]DOM、DEM、landcover,从tms服务发布格式转arcgis、google服务发布格式

    原作:南水之源 先看看tms和google服务器发布数据的数据排列:(goole地图与arcgis一样) 我现在手上有tms发布的数据,dom,dem等,现在要用arcgis server来发布这些数 ...

  9. WPF开发ArcGis系统时的异常信息: ArcGIS product not specified. You must first bind to an ArcGIS version prior to using any ArcGIS components.

    “System.Runtime.InteropServices.COMException”类型的未经处理的异常在 Arcgis_Test.exe 中发生 其他信息: ArcGIS product no ...

随机推荐

  1. LeetCode题解41.First Missing Positive

    41. First Missing Positive Given an unsorted integer array, find the first missing positive integer. ...

  2. Animator 动画第一次播放正常,之后播放都不正常的问题解决

    Animator 动画第一次播放正常,之后播放都不正常的问题解决 问题描述 第一次点击图片动画播放正常,在点击文字之后,图片没有显示出来,点击空白,播放动画,显示文字. 写了一个卡片翻转的动画,代码如 ...

  3. [Bash]LeetCode194. 转置文件 | Transpose File

    Given a text file file.txt, transpose its content. You may assume that each row has the same number ...

  4. [Swift]LeetCode333. 最大的二分搜索子树 $ Largest BST Subtree

    Given a binary tree, find the largest subtree which is a Binary Search Tree (BST), where largest mea ...

  5. [Swift]LeetCode749. 隔离病毒 | Contain Virus

    A virus is spreading rapidly, and your task is to quarantine the infected area by installing walls. ...

  6. 面向对象-Java MOOC翁恺老师第一次作业

    由于看这个慕课的时候已经结课了,没有办法提交查看代码是否正确...先保存一下,以后再提交改错 欢迎批评指正! 题目链接:https://www.icourse163.org/learn/ZJU-100 ...

  7. Python内置函数(30)——hex

    英文文档: hex(x) Convert an integer number to a lowercase hexadecimal string prefixed with “0x”, for exa ...

  8. JVM基础系列第14讲:JVM参数之GC日志配置

    说到 Java 虚拟机,不得不提的就是 Java 虚拟机的 GC(Garbage Collection)日志.而对于 GC 日志,我们不仅要学会看懂,而且要学会如何设置对应的 GC 日志参数.今天就让 ...

  9. leetcode — surrounded-regions

    import java.util.Arrays; import java.util.Stack; /** * Source : https://oj.leetcode.com/problems/sur ...

  10. Mybatis动态SQL简单了解 Mybatis简介(四)

    动态SQL概况 MyBatis 的强大特性之一便是它的动态 SQL 在Java开发中经常遇到条件判断,比如: if(x>0){ //执行一些逻辑........ }   Mybatis应用中,S ...