SuperMap iServer 支持以下类型的交通网络分析服务提供者:
配置本地交通网络分析服务提供者
配置一个 UGC 本地交通网络分析服务提供者,如下所示:
<provider class="com.supermap.services.providers.UGCTransportationAnalystProvider"
inner-providerNames="ugcDataProvider-Changchun" name="transportationAnalystProvider-Changchun">
<config class="com.supermap.services.providers.TransportationAnalystSetting">
<workspaceConnectString>../../samples/data/NetworkAnalyst/Changchun.sxwu</workspaceConnectString>
<datasourceName>Changchun</datasourceName>
<datasetName>RoadNet</datasetName>
<ruleField>TRule</ruleField>
<forwardSingleWayRuleValues>
<string>FT</string>
</forwardSingleWayRuleValues>
<backwardSingleWayRuleValues>
<string>TF</string>
</backwardSingleWayRuleValues>
<twoWayRuleValues>
<string>twoWay</string>
</twoWayRuleValues>
<prohibitedWayRuleValues>
<string>prohibit</string>
</prohibitedWayRuleValues>
<edgeIDField>SmEdgeID</edgeIDField>
<edgeNameField>RoadName</edgeNameField>
<nodeIDField>SmNodeID</nodeIDField>
<nodeNameField>SmNodeID</nodeNameField>
<fromNodeIDField>SmFNode</fromNodeIDField>
<toNodeIDField>SmTNode</toNodeIDField>
<tolerance>500.0</tolerance>
<weightFieldInfos>
<com.supermap.services.components.commontypes.WeightFieldInfo>
<name>length</name>
<forwardWeightField>Length</forwardWeightField>
<backWeightField>Length</backWeightField>
</com.supermap.services.components.commontypes.WeightFieldInfo>
<com.supermap.services.components.commontypes.WeightFieldInfo>
<name>time</name>
<forwardWeightField>FT_TIME</forwardWeightField>
<backWeightField>TF_TIME</backWeightField>
</com.supermap.services.components.commontypes.WeightFieldInfo>
</weightFieldInfos>
<poolSize>10</poolSize>
<turnDatasetInfo>
<workspaceConnectString>../../samples/data/NetworkAnalyst/Changchun.sxwu</workspaceConnectString>
<datasourceName>Changchun</datasourceName>
<datasetName>RoadNet_TURN</datasetName>
<nodeIDField>NodeID</nodeIDField>
<fromEdgeIDField>FEdgeID</fromEdgeIDField>
<toEdgeIDField>TEdgeID</toEdgeIDField>
<weightFields>
<string>TurnCost</string>
</weightFields>
</turnDatasetInfo>
<analystModeSetting>
<sscSetting>
<enabled>true</enabled>
<levelField>level_User</levelField>
<sscPath>C:\test.ssc</sscPath>
<autoGenerateSsc>false</autoGenerateSsc>
</sscSetting>
</analystModeSetting>
<autoCheckNetwork>false</autoCheckNetwork>
<initFacilityAnalyst>true</initFacilityAnalyst>
<directionField>SmResistanceA</directionField>
</config>
</provider>
其中,<provider>中的 class 标识的是本地交通网络分析服务提供者的实现类,<config>中的 class 标识的是本地交通网络分析服务提供者对应的配置类,即 TransportationAnalystSetting,<config>中的内容是对应的配置项,主要包括:
<workspaceConnectString>${datapath1}/World.sxwu</workspaceConnectString>
-
数据来源信息如<workspaceConnectString>、<workspaceType>、<datasourceName>、<datasetName>。其中,<workspaceConnectString>表示该服务提供者所用的工作空间的路径。此外,工作空间路径支持从环境变量和系统配置文件中读取。可写为:
- 详细说明请参见:预设本地工作空间路径
-
本地交通网络分析使用的数据与算法参数信息,如<turnDatasetInfo>、<weightFieldInfos>、<nodeIDField>、<nodeNameField>、<fromNodeIDField>、<toNodeIDField>、<tolerance>等。
-
是否自动检查网络数据集<autoCheckNetwork>,为 false 时为手动检查,需用户在 Provider 的配置界面点击按钮进行检查;为 true 时会自动检查。
关于这些参数的详细介绍,请参考:本地交通网络分析服务提供者的配置。
-
<initFacilityAnalyst>:是否初始化设施网络分析,默认为false。修改为true后,将开启爆管分析、上下游关键设施查找分析、连通性分析功能。详细请参考:burstAnalyse,upstreamcirticalfaclilities,downstreamcirticalfaclilities、connectedEdges
-
<directionField>:流向字段,当<initFacilityAnalyst>为true时,该参数必填。
-
<nodeIDFilterField>:该参数仅用于指定生成默认sourceNodeIDs参数的过滤字段。即:当sourceID为空,该属性字段值为true的结点ID将作为默认的sourceNodeIDs。若该参数为空,则会将所有的nodeID作为默认的sourceNodeIDs。当<initFacilityAnalyst>为true时,此参数可用。
-
<analystModeSetting>:分析模型配置,用于设置除基本分析模型之外的其他分析模型,如最佳路径分析的 SSC 分析模型。如不设置本参数则仅使用基本分析模型。
-
<sscSetting>:最佳路径分析 SSC 分析模型配置。
-
<enabled>:是否开启最佳路径分析 SSC 分析模型。
-
<levelField>:道路等级字段。
-
<sscPath>:SSC 文件的绝对路径。
-
<autoGenerateSsc>:是否自动生成 SSC 文件。默认 false,表示不自动生成。
-
<poolSize>:线程缓冲池大小。参数设置默认值为10,建议设为小于等于CPU核数。
注意事项:
1、当有 SSC 文件时,直接使用 SSC 文件。没有 SSC 文件且开启自动生成参数,将会自动生成 SSC 文件,自动生成的 SSC 文件存放在 sscPath 参数指定的路径下。当配置开启最佳路径分析 SSC 分析模型但未开启自动生成 SSC 文件且不存在已有的 SSC 文件时,服务将无法使用。
2、在配置本地交通网络服务提供者前建议对标识网络弧段 ID 的字段、标识网络结点 ID 的字段建立字段索引。
配置 REST 交通网络分析服务提供者
配置一个 REST 交通网络分析服务提供者,如下所示:
<provider class="com.supermap.services.providers.RestTransportationAnalystProvider" name="restSpatialProvider"> <config class="com.supermap.services.providers.RestTransportationAnalystProviderSetting"> <restServiceRootURL>http://localhost:8090/iserver/services/transportationanalyst-sample/rest</restServiceRootURL> <restProviderCacheConfig> <maxElementsInMemory>1</maxElementsInMemory> <maxSizeOnDisk>2048</maxSizeOnDisk> <timeToLiveSeconds>0</timeToLiveSeconds> <timeToIdleSeconds>0</timeToIdleSeconds> </restProviderCacheConfig> <useCache>true</useCache> </config> </provider>
其中<provider>中的 class 标识的是 REST 交通网络分析服务提供者的实现类,<config>中的 class 标识的是 REST 交通网络分析服务提供者对应的配置类,即 RestTransportationAnalystProviderSetting,<config>中的内容是对应的配置项,包括:
- <restServiceRootURL>:REST 交通网络分析服务地址,指向服务的根资源路径,如 http://localhost:8090/iserver/services/transportationanalyst-sample/rest。
- <useCache>:是否使用缓存。默认为 true。开启缓存后,对资源的 REST 请求会缓存在本地,下次收到同样的请求就直接在缓存中读取,不需要再向服务端发送。
- <restProviderCacheConfig>:服务提供者历史请求缓存在内存中的存储设置,包括:
- <maxElementsInMemory>:内存中允许存储的最大请求记录数。0代表无限制;1代表不使用内存缓存,默认为1。如果不为1,则优先向内存中存储请求记录。
- <maxSizeOnDisk>:磁盘最大容量。单位为 MB,默认大小为2048MB。
- <timeToLiveSeconds>:设置缓存存活的时间上限,超时后会自动清除缓存。从创建记录开始计算,单位为秒,默认为0,代表缓存永久存活。
- <timeToIdleSeconds>:设置缓存闲置的时间上限,超时后会自动清除缓存。从上次被访问开始计算,单位为秒,默认为0,代表缓存永久存活。
- <token>:启用安全机制的情况下,访问受保护的 REST 资源需要提供Token 令牌。
配置 ArcGIS REST 网络分析服务提供者
配置一个 ArcGIS REST 网络分析服务提供者,如下所示:
<provider class="com.supermap.services.providers.ArcGISRestNetworkAnalystProvider" enabled="true" name="transportationAnalyst-Streets_ND3"> <config class="com.supermap.services.providers.ArcGISRestNetworkAnalystProviderSetting"> <restServiceRootURL>http://localhost:6080/arcgis/rest/services/sample/NAServer</restServiceRootURL> <token/> <httpReferer/> <networkDataset>Streets_ND</networkDataset> <routeLayer>Route</routeLayer> <serviceAreaLayer>Service Area</serviceAreaLayer> <closestFacilityLayer>Closest Facility</closestFacilityLayer> </config> </provider>
其中<provider>中的 class 标识的是 ArcGIS REST 网络分析服务提供者的实现类,<config>中的 class 标识的是 ArcGIS REST 网络分析服务提供者对应的配置类,即 ArcGISRestNetworkAnalystProviderSetting,<config>中的内容是对应的配置项,包括:
- <restServiceRootURL>:ArcGIS REST 网络分析服务地址,指向服务的根资源路径,如 http://localhost:6080/arcgis/rest/services/exercise/NAServer。
- <networkDataset>:ArcGIS 的网络数据集。
- <routeLayer>:路径分析所需图层。
- <serviceAreaLayer>:服务区分析所需图层。
- <closestFacilityLayer>:最近设施查找所需图层。
- <token>、<httpReferer>:启用安全机制的情况下,访问受保护的服务需要提供Token 令牌。如果使用的 Token 是以 HTTP referer 方式申请的,则需要设置相应的<httpReferer>。