【教程】发布NAServer到ArcGIS 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
本人不提供软件,请自行查找。
【教程】发布NAServer到ArcGIS Server 10.4上[超详细]的更多相关文章
- ArcGIS Server 10.1发布GP服务
ArcGIS Server 10.1发布GP服务 ArcGIS Server 10.1发布GP服务确实更简单了,只是刚使用不怎么习惯.ArcGIS Server 10.1发布GP服务需要先在ArcCa ...
- ArcGIS Server 10.2 实战(二)动态修改要素数据的地理处理服务
上一篇<ArcGIS Server 10.2 实战(一)Asp.net MVC与JSON数据妙用实现动态生成要素图层>介绍了如何用JSON转要素的地理处理服务,实现了动态创建点要素并加载到 ...
- ArcGIS Server 10.0 安装及使用完整攻略
引言 ArcGIS Server 10.0在使用和安装的过程中,需要进行比较全面的学习,才能正确使用.缺乏正确的指引,用户很容易在安装及使用中遇到问题.所以笔者在此总结Server 10.0的安装及使 ...
- 分享ArcGIS Server 10.0修复安装心得
最近,捣腾了一阵子在xp系统上安装ArcGIS Server10.0(下方均简称server),解决了一些初学者可能面临的problem,给大家贴出来, 希望能够给初学者一些有益的帮助. 我的系统环境 ...
- Arcgis Server 10.2默认服务端口号修改方法
本人安装Arcgis Server 10.2之后发布了一个地图服务,该服务默认使用的端口号是6080,本人使用的是教育网,使用教育网均能正常使用该服务,但是使用电信或者移动网络均不能正常访问该网站. ...
- ArcGIS Server 10.2 实战(三)图层标注及图例中文显示乱码的解决
发布的图层中不可避免的使用到中文来标注,默认设置下,ArcGIS Server不支持中文的,中文标注显示成乱码,主要是编码的问题,需要把手动把编码改为UTF-8. ArcGIS Server 10.2 ...
- ArcGIS Server 10 Java 版的Rest服务的部署方法
使用ArcGIS Server 10 Java版发布GIS服务,当使用ArcGIS Manager创建好服务后,然后打开“ArcGIS Services Directory”的链接时发现网页报出了找不 ...
- ArcGIS Server 10.1新特性系列---动态图层
ArcGIS Server 10.1新特性里面有几个新功能是非常棒的,其中有一个就是动态图层.动态图层不是一种新发明的图层,而是说在arcgis server的web应用中可以动态的配置其渲染和内容功 ...
- arcgis server 10.2安装后,忘记Manager的用户名和密码
arcgis server 10.2安装完毕后,需要创建站点,创建站点时,填写管理站点的用户名和密码.自己不小心,创建完毕后,给忘记了用户名和密码.求助Esri,解决方法如下: (1)找到arcgis ...
随机推荐
- pcntl_fork 导致 MySQL server has gone away 解决方案
pcntl_fork 前连数据库,就会报 MySQL server has gone away 错误.原因是子进程会继承主进程的数据库连接,当mysql返回数据时,这些子进程都可以通过这个连接读到数据 ...
- iOS开发之Segue
Storyboard上每一根用来界面跳转的线,都是一个UIStoryboardSegue对象(简称Segue). 每一个Segue对象,都有3个属性: (1)唯一标识 @property (nonat ...
- memcached参数解释及常用命令
一.执行 memcached -h 会显示所有的参数项,对应的中文解释如下: -p <num> 监听的TCP端口(默认: 11211) -U <num> 监 ...
- centos安装python2.7并安装easy_install,pip,ipython
1.安装python 下载python2.7.10 # wget https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz # tar -z ...
- JavaScript对象原型写法区别
体现对象原型分步式写法 //原型分步式写法 //构造函数 function Person(){} //对象原型 Person.prototype.name = 'Avensatr'; Pers ...
- javaEE与JSP基础
JSP基础 1. jsp的作用: * Servlet: > 缺点:不适合设置html响应体,需要大量的response.getWriter().print("<html ...
- mybatis generator 插件安装及使用
现在Mybatis特别火,但是在开发中却要经常写实体类和配置文件,会不会特别烦人,所以可以利用Mybatis的代码生成插件来生成这部分代码: 1,打开eclipse,点击Help>Softwar ...
- 老李分享:qtp自动化测试框架赏析-关键字自动化测试框架
老李分享:qtp自动化测试框架赏析-关键字自动化测试框架 QTP从2005年继winrunner,robot逐渐退出历史舞台之后,占领主流自动化测试工具市场已经10年之久.当初为了提高在自动化测试 ...
- Framework7初始化
/** * Framework7初始化 * 需引用jQuery */ /*---------------------------函数---------------------------*/ /** ...
- OS X background process
Types of Background Process 1. login item 2. xpc service 3. daemon/agent (也可以叫 mach service) 4. star ...