ArcGIS 网络分析[3] 发布NAServer到ArcGIS for Server(以Server 10.4为例)
前阵子对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为例)的更多相关文章
- 【教程】发布NAServer到ArcGIS Server 10.4上[超详细]
前阵子对ArcGIS API For JavaScript的网络分析有兴趣,但是不知道其数据是如何获取的. 查阅API知道,AJS的网络分析只有三个功能:最短路径(RouteTask).最近设施点(C ...
- ArcGIS 网络分析[0] 介绍与博文目录【更新中】
网络分析是个热点,理论上是属于计算机图形学和数据结构的,GIS以此为基础做出应用. 以下列举本人在学习中遇到的网络分析问题与经验总结. 1. 软件平台及数据准备 平台:Windows 10 操作系统, ...
- ArcGIS网络分析之Silverlight客户端最近设施点分析(四)
原文:ArcGIS网络分析之Silverlight客户端最近设施点分析(四) 在上一篇中说了如何实现最近路径分析,本篇将讨论如何实现最近设施点分析. 最近设施点分析实际上和路径分析有些相识,实现的过程 ...
- ArcGIS网络分析之Silverlight客户端路径分析(三)
原文:ArcGIS网络分析之Silverlight客户端路径分析(三) 首先贴上最终的效果图: a.路径查询 2.最近设施点查询 3.服务区分析 说明: 1.以上的示例使用的数据是随意在ArcMap中 ...
- 【转】从 ArcGIS for Desktop 发布地图服务
原文链接:http://resources.arcgis.com/zh-CN/help/tutorials/01z300000007000000.htm 本教程的目的是将地图服务直接从 ArcGIS ...
- [置顶] ArcGIS发布最新的 ArcGIS Runtime SDK for Android v10.1.1
因为希望有统一的地图解决方案,就是PC端,移动端的数据一致,看到ArcGIS的最新发布,感兴趣的可以围观. 链接:http://blogs.esri.com/esri/arcgis/2013/09/0 ...
- ArcGIS 网络分析[1] 介绍与博文目录【更新中】
网络分析是个热点,理论上是属于计算机图形学和数据结构的,GIS以此为基础做出应用. 以下列举本人在学习中遇到的网络分析问题与经验总结. 平台:Windows 10操作系统,ArcGIS for Des ...
- [原]DOM、DEM、landcover,从tms服务发布格式转arcgis、google服务发布格式
原作:南水之源 先看看tms和google服务器发布数据的数据排列:(goole地图与arcgis一样) 我现在手上有tms发布的数据,dom,dem等,现在要用arcgis server来发布这些数 ...
- 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 ...
随机推荐
- 【安富莱原创开源应用第2期】基于RL-USB和RL-FlashFS的完整NAND解决方案,稳定好用,可放心用于产品批量
说明:0. NAND Flash这块经常有人咨询,这里发布一个完整的解决方案,支持擦写均衡,坏块管理,ECC和掉电保护. 早期的时候我们是用的自己做的NAND算法,支持滑块管理,擦写均衡 ...
- Oracle数据库备份及还原
Oracle数据库备份 1:找到Oracle安装路径我的就是默认C盘 C:\app\wdjqc\admin\orcl\adump 2:执行文件:back.bat 文件内容如下: @echo off ...
- js注入攻击
注入攻击一般指用户输入数据导致页面乃至整个网站.服务器异常的情况. 直接看一个例子: <html> <head> <title>Test</title> ...
- [Swift]LeetCode26. 删除排序数组中的重复项 | Remove Duplicates from Sorted Array
Given a sorted array nums, remove the duplicates in-place such that each element appear only once an ...
- [Swift]LeetCode457. 环形数组循环 | Circular Array Loop
You are given an array of positive and negative integers. If a number n at an index is positive, the ...
- AI 这么优秀,连我鉴黄师的饭碗都抢了
色情行业,或许是对信息渠道最敏锐.利用各类信息渠道进行传播最“充分”的“行业”.这些年,社交 App.直播.短视频等新的互联网应用方式,都难逃色情内容的“骚扰”.哪里人多,色情内容就能立刻扑过去,在海 ...
- AspNetCoreMvc使用MongoDB,快来get一下吧。
看这篇文章之前请耐心看完MongoDb入门,如果还是坚持不看,那我也没有办法. MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. ...
- redis 系列9 对象类型(字符串,哈希,列表,集合,有序集合)与数据结构关系
一.概述 在前面章节中,主要了解了 Redis用到的主要数据结构,包括:简单动态字符串.链表(双端链表).字典.跳跃表. 整数集合.压缩列表(后面再了解).Redis没有直接使用这些数据结构来实现键值 ...
- Linux~Sh脚本一点自己的总结
从.netCore开源项目来看,eShopOnContainers来说,它的部署是跨平台的,可以部署在linux,docker上,在linux上运行它也可以写一些集成的小脚本,这是微信工程师为我们提供 ...
- 基础才是重中之重~delegate里的Invoke和BeginInvoke
回到目录 Invoke和BeginInvoke都是调用委托实体的方法,前者是同步调用,即它运行在主线程上,当Invode处理时间长时,会出现阻塞的情况,而BeginInvod是异步操作,它会从新开启一 ...