arcgis api for js 之网络分析服务发布
1.引言
百度地图上有这样的功能:点击两个点,地图上会显示对两个点的路径规划。这个功能能否利用 arcgis api 实现呢?答案是肯定的。不过在实现之前,我们需要将数据发布为网络分析服务,接下来我将介绍如何发布网络分析服务。
2. 步骤
2.1 数据准备
首先,我们需要一个 gdb 数据库,右击这个数据库,创建一个 feature dataset。
右击刚创建的 feature dataset,import 我们进行分析所需要的道路数据。
数据导入成功之后,再次右击这个 feature dataset,创建一个 network dataset:
为新建的网络分析数据集命名。
一路点击下一步,直到设置 connectivity 时。connectivity 主要是设置多个图层之间的连通性和连接方式。我们主要关注的是这两个点
connectivity policy
表示的是连接的规则。有两个选项。第一个是 End Point,表示两条线段仅在端点处才能连接。例如下面这张图,l1 和 l2 设置连通性为 End Point 之后,虽然他们显示为交叉,但是不能够从图中的 j1 经过拐点到达 j3。
第二个选项时 Any Vertex,表示线段上任意一个转折点都可以和其他线段连接。还是上面那个例子,如果设置为 Any Vertex 之后,就可以从 j1 经过拐点到达 j3 了。
连接组
连接组表示将这两个图层放在同一个网络服务上,如果他们坐标一样,显示在地图上有重合的部分,这些重合的部分会按照对应的连接政策连接。如果这里 highroad 不勾选的换,那么highroad 图层和 road 图层之间是不能连接的。
接下来设置图层的 Z 坐标。即是否需要为每个图层设置高程值,如果有设置高程值,不同高程的点之间是不连通的,我这边选择 None。
接下来的这步操作会影响到最终的路径规划。要选择出两点之间的最短路径,我们需要有一个评判标准,例如长度、时间等,这里我们一长度作为评判路径长短的标准。选择 Add,填入对应的名称、类型、单位等值。关于 Usage Type 的详细介绍可以看这里
添加完之后,我们发现 Distance 字段前面出现了黄色感叹号,表示这个评判标准不合法,我们点击 Evaluators 来消除这个感叹号。主要是为每个图层的评判标准设置一个值,我们将每个图层的 Value 都设置为图层内部的 SHAPE_1_Length,表示长度。根据图层包含字段不同,请自行设置。如果需要对字段进行计算之后再赋值,可以点击右边的这个图标。
接下来设置 Direction 属性,点击 Directions 按钮之后,将 Primary 的 name 属性设置为任意一个字段,至于为什么这么还有待研究。注意,每个图层都要进行这个操作。
点击 下一步,显示我们设置的信息,至此,我们数据准备步骤已经完成了。
2.2 服务发布
发布服务之前,我们需要开启网络分析权限,点击 Customize - extensions,勾选 Network Analyst。打开 Network Analyst 工具条,新建一个 route。至此,数据准备完成了,开始发布数据。
发布过程跟发布基本的动态服务差不多,需要注意的是确保在 Capabilities 选项卡下勾选 Network Analysis。
点击 Analyze 进行分析,没有错误之后,点击 Publish 发布服务。出现以下窗口之后,表示服务发布成功。
arcgis api for js 之网络分析服务发布的更多相关文章
- ArcGIS API for Silverlight 调用GP服务准备---GP模型建立、发布、测试
原文:ArcGIS API for Silverlight 调用GP服务准备---GP模型建立.发布.测试 第一篇.GP降雨量等值线建模.发布及测试 在水利.气象等行业中,要在WebGIS中实现空间分 ...
- arcgis api for js入门开发系列一arcgis api离线部署
在我的GIS之家QQ群里,很多都是arcgis api for js开发的新手,他们一般都是GIS专业的学生,或者从计算机专业刚刚转向来的giser,他们难免会遇到各种webgis开发的简单问题,由于 ...
- arcgis api for js入门开发系列二十打印地图的那些事
前面我写过关于利用arcgis api for js打印地图的,但是打印地图服务都是基于arcgis server发布的,arcgis api加载在线地图,比如天地图.百度地图.高德地图等,底图都是打 ...
- arcgis api for js入门开发系列四地图查询(含源代码)
备注:由于实现本篇功能的需求,修改了地图数据的dlsearch.mxd,然后更新了地图服务,需要的在文章最后有提供最新的mxd以及源代码下载的 上一篇实现了demo的地图工具栏,本篇新增地图查询功能, ...
- ArcGIS API for Silverlight 使用GP服务实现要素裁剪功能
原文:ArcGIS API for Silverlight 使用GP服务实现要素裁剪功能 昨天一QQ好友问了一个关于裁剪的问题,感觉自己也没有帮上什么忙,之后自己做了一个裁剪的例子,不过在做这个例子的 ...
- 转:arcgis api for js入门开发系列四地图查询
原文地址:arcgis api for js入门开发系列四地图查询 arcgis for js的地图查询方式,一般来说,总共有三种查询方式:FindTask.IdentifyTask.QueryTas ...
- Arcgis API for JS——打印控件乱码
在通过Arcgis API for JS编写打印控件进行地图下载时,总发现地图字体乱码,如下图: 解决方法: 在装有ArcGIS Server,要调用服务的电脑或服务器上找到下图文件夹
- arcgis api for js 地图查询
arcgis api for js入门开发系列四地图查询(含源代码) 上一篇实现了demo的地图工具栏,本篇新增地图查询功能,包括属性查询和空间查询两大块,截图如下: 属性查询效果图: 空间查询效 ...
- arcgis api for js 4.X 出现跨域问题
arcgis api for js 4.X 出现跨域问题 XMLHttpRequest cannot load http://localhost/4.3/4.3/esri/workers/mutabl ...
随机推荐
- Azure Web App (二)使用部署槽切换部署环境
一,引言 前天我们将到使用Azure的 Pass 服务 “Web App” 去部署我们的.NET Core Web项目,也同时有介绍到如何在VS中配置登陆中国区的Azure账号,今天接着讲,我们部署完 ...
- IOS10 window.navigator.geolocation.getCurrentPosition 无法定位问题
在iOS 10中,苹果对webkit定位权限进行了修改,所有定位请求的页面必须是https协议的. 如果是非https网页,在http协议下通过HTML5原生定位接口会返回错误,也就是无法正常定位到用 ...
- bzoj3891[Usaco2014 Dec]Piggy Back*
bzoj3891[Usaco2014 Dec]Piggy Back 题意: 给定一个N个点M条边的无向图,其中Bessie在1号点,Elsie在2号点,它们的目的地为N号点.Bessie每经过一条边需 ...
- git只操作某个文件夹
在我们的工作中,可能会有这样的情况发生:我只想提交某一个文件夹,而另外的文件夹我并不想提交. 遇到上述情况,我们再git中这样解决: 1.查看某个文件夹的状态(这里我用log文件夹做实验). 我们可以 ...
- 集训作业 洛谷P1469 找筷子
这个题的代码真的是短的不得了呢. 有个神奇的东西叫异或,写起来是这个样子的^. 这个东西可以查看2个数的二进制某位是否相同,相同取0,不同取1.虽然我用的不熟,但我可以想出来,如果2个相同的数异或,答 ...
- 【week1错题集】
day9[2.f] # day9 题2.f ''' 有如下文件,t1.txt,里面的内容为: 葫芦娃,葫芦娃, 一根藤上七个瓜 风吹雨打,都不怕, 啦啦啦啦. 以r模式打开文件,从‘风吹雨打..... ...
- Lucas定理 & Catalan Number & 中国剩余定理(CRT)
又双叒叕来水数论了 今天来学习\(Lucas \:\ \& \:\ Catalan Number\) 两者有着密切的联系(当然还有CRT),所以放在一起学习一下 \(Lucas\) 定义\(\ ...
- IDM的“免费版”NDM免费的下载工具
软件截图 软件介绍 免费小巧的多线程下载工具,支持断点续传,支持浏览器扩展,嗅探下载音视频文件. 和IDM差不多,只不过是免费的 下载软件 Win 我提供的UCloud-OSS 官网下载 Mac 我提 ...
- [jvm] -- 类加载器及双亲委派模板篇
类加载器 JVM 中内置了三个重要的 ClassLoader BootstrapClassLoader(启动类加载器):最顶层的加载类,由C++实现,负责加载 %JAVA_HOME%/lib目录下的j ...
- NIO入门之缓冲区Buffer
缓存区 Buffer 是数据容器 ByteBuffer 可以存储除了 boolean 以外的其他 7 种Java基本数据类型,如 getInt.putInt Buffer 是抽象类,它有除了 Bool ...