arcgis api for js 之发布网络分析服务

1.引言

百度地图上有这样的功能:点击两个点,地图上会显示对两个点的路径规划。这个功能能否利用 arcgis api 实现呢?答案是肯定的。不过在实现之前,我们需要将数据发布为网络分析服务,接下来我将介绍如何发布网络分析服务。

2. 步骤

2.1 数据准备

首先,我们需要一个 gdb 数据库,右击这个数据库,创建一个 feature dataset。

创建FeatureDataset

右击刚创建的 feature dataset,import 我们进行分析所需要的道路数据。

数据导入成功之后,再次右击这个 feature dataset,创建一个 network dataset:

createNetDataset

为新建的网络分析数据集命名。
name

一路点击下一步,直到设置 connectivity 时。connectivity 主要是设置多个图层之间的连通性和连接方式。我们主要关注的是这两个点

  • connectivity policy

    表示的是连接的规则。有两个选项。第一个是 End Point,表示两条线段仅在端点处才能连接。例如下面这张图,l1 和 l2 设置连通性为 End Point 之后,虽然他们显示为交叉,但是不能够从图中的 j1 经过拐点到达 j3。

    example

    第二个选项时 Any Vertex,表示线段上任意一个转折点都可以和其他线段连接。还是上面那个例子,如果设置为 Any Vertex 之后,就可以从 j1 经过拐点到达 j3 了。

  • 连接组

    连接组表示将这两个图层放在同一个网络服务上,如果他们坐标一样,显示在地图上有重合的部分,这些重合的部分会按照对应的连接政策连接。如果这里 highroad 不勾选的换,那么highroad 图层和 road 图层之间是不能连接的。

connectivity

接下来设置图层的 Z 坐标。即是否需要为每个图层设置高程值,如果有设置高程值,不同高程的点之间是不连通的,我这边选择 None。

Z

接下来的这步操作会影响到最终的路径规划。要选择出两点之间的最短路径,我们需要有一个评判标准,例如长度、时间等,这里我们一长度作为评判路径长短的标准。选择 Add,填入对应的名称、类型、单位等值。关于 Usage Type 的详细介绍可以看这里

justice

添加完之后,我们发现 Distance 字段前面出现了黄色感叹号,表示这个评判标准不合法,我们点击 Evaluators 来消除这个感叹号。主要是为每个图层的评判标准设置一个值,我们将每个图层的 Value 都设置为图层内部的 SHAPE_1_Length,表示长度。根据图层包含字段不同,请自行设置。如果需要对字段进行计算之后再赋值,可以点击右边的这个图标。
图标

去除感叹号

接下来设置 Direction 属性,点击 Directions 按钮之后,将 Primary 的 name 属性设置为任意一个字段,至于为什么这么还有待研究。注意,每个图层都要进行这个操作。

Directions

点击 下一步,显示我们设置的信息,至此,我们数据准备步骤已经完成了。

2.2 服务发布

发布服务之前,我们需要开启网络分析权限,点击 Customize - extensions,勾选 Network Analyst。打开 Network Analyst 工具条,新建一个 route。至此,数据准备完成了,开始发布数据。

发布过程跟发布基本的动态服务差不多,需要注意的是确保在 Capabilities 选项卡下勾选 Network Analysis。

networkAnalysis

点击 Analyze 进行分析,没有错误之后,点击 Publish 发布服务。出现以下窗口之后,表示服务发布成功。

发布成功

阅读更多

扫码向博主提问

firepation

非学,无以致疑;非问,无以广识
  • 擅长领域:
  • java
  • webgis
去开通我的Chat快问
文章标签: arcgis api for js webgis
个人分类: ArcGIS API for JS
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭