类 RestTransportationAnalystProvider
- java.lang.Object
-
- com.supermap.services.providers.RestProviderBase
-
- com.supermap.services.providers.RestTransportationAnalystProvider
-
public class RestTransportationAnalystProvider extends RestProviderBase implements TransportationAnalystProvider, ProviderContextAware
REST 交通网络分析服务提供者。
-
-
嵌套类概要
-
从类继承的嵌套类/接口 com.supermap.services.providers.RestProviderBase
RestProviderBase.CacheModel, RestProviderBase.RestRequestException
-
-
字段概要
-
从类继承的字段 com.supermap.services.providers.RestProviderBase
JAVA_POSTFIX, javaConverter, JSON_POSTFIX, jsonConverter, jsonDecoder, lock, logger, message, XML_POSTFIX, xmlDecoder
-
-
构造器概要
构造器 构造器和说明 RestTransportationAnalystProvider()
构造函数。RestTransportationAnalystProvider(RestTransportationAnalystProviderSetting setting)
构造函数。
-
方法概要
方法 限定符和类型 方法和说明 BurstAnalyseResult
burstAnalyseFromEdge(int[] sourceNodeIDs, int edgeID, FacilityAnalystParameter parameter)
BurstAnalyseResult
burstAnalyseFromNode(int[] sourceNodeIDs, int nodeID, FacilityAnalystParameter parameter)
double[][]
computeWeightMatrix(int[] nodeIDs, TransportationAnalystParameter parameter)
通过交通网络分析参数,得出一个耗费矩阵。double[][]
computeWeightMatrix(Point2D[] points, TransportationAnalystParameter parameter)
通过交通网络分析参数,得出一个耗费矩阵。ClosestFacilityPaths<java.lang.Integer>
findClosestFacility(int[] facilityIDs, int eventID, int expectFacilityCount, boolean fromEvent, double maxWeight, TransportationAnalystParameter parameter)
最近设施查找分析,事件点以网络结点 ID 表示。ClosestFacilityPaths<Point2D>
findClosestFacility(Point2D[] facilityPoints, Point2D eventPoint, int expectFacilityCount, boolean fromEvent, double maxWeight, TransportationAnalystParameter parameter)
最近设施查找分析,事件点以点坐标表示。FacilityAnalyst2DResult
findConnectedEdgesFromEdges(int[] edgeIDs, boolean returnFeatures, boolean connected)
根据给定的弧段 ID 数组,查找与这些弧段相连通的弧段,返回弧段 ID 数组、要素数组FacilityAnalyst2DResult
findConnectedEdgesFromNodes(int[] nodeIDs, boolean returnFeatures, boolean connected)
根据给定的结点 ID 数组,查找与这些结点相连通或者不相连通的弧段,返回弧段 ID 数组、要素数组FacilityAnalyst2DResult
findCriticalFacilitiesDownFromEdge(int[] sourceNodeIDs, int edgeID, FacilityAnalystParameter parameter)
FacilityAnalyst2DResult
findCriticalFacilitiesDownFromNode(int[] sourceNodeIDs, int nodeID, FacilityAnalystParameter parameter)
FacilityAnalyst2DResult
findCriticalFacilitiesUpFromEdge(int[] sourceNodeIDs, int edgeID, FacilityAnalystParameter parameter)
FacilityAnalyst2DResult
findCriticalFacilitiesUpFromNode(int[] sourceNodeIDs, int nodeID, FacilityAnalystParameter parameter)
LocationAnalystResult
findLocation(LocationAnalystParameter parameter)
选址分区分析。MTSPPaths<java.lang.Integer>
findMTSPPath(int[] nodeIDs, int[] centerIDs, boolean hasLeastTotalCost, TransportationAnalystParameter parameter)
多旅行商(物流配送)分析,配送中心以网络结点 ID 数组表示。MTSPPaths<Point2D>
findMTSPPath(Point2D[] points, Point2D[] centerPoints, boolean hasLeastTotalCost, TransportationAnalystParameter parameter)
多旅行商(物流配送)分析,配送中心以点坐标串表示。Paths
findPath(int[] nodeIDs, boolean hasLeastEdgeCount, TransportationAnalystParameter parameter)
最佳路径分析。Paths
findPath(Point2D[] points, boolean hasLeastEdgeCount, TransportationAnalystParameter parameter)
最佳路径分析。ServiceAreaResults<java.lang.Integer>
findServiceArea(int[] centerIDs, double[] weights, boolean isFromCenter, boolean isCenterMutuallyExclusive, TransportationAnalystParameter parameter)
服务区分析。ServiceAreaResults<java.lang.Integer>
findServiceArea(int[] centerIDs, double[] weights, ServiceAreaAnalystParameter parameter)
ServiceAreaResults<Point2D>
findServiceArea(Point2D[] centerPoints, double[] weights, boolean isFromCenter, boolean isCenterMutuallyExclusive, TransportationAnalystParameter parameter)
服务区分析。ServiceAreaResults<Point2D>
findServiceArea(Point2D[] centerPoints, double[] weights, ServiceAreaAnalystParameter parameter)
TSPPaths
findTSPPath(int[] nodeIDsToVisit, boolean endNodeAssigned, TransportationAnalystParameter parameter)
旅行商分析。TSPPaths
findTSPPath(Point2D[] pointsToVisit, boolean endNodeAssigned, TransportationAnalystParameter parameter)
旅行商分析。java.lang.String
getNetworkDataName()
获取网络数据名称。PrjCoordSys
getPrjCoordSys()
获取网络数据的投影信息protected RestProviderSetting
getRestProviderSetting()
返回REST服务提供者配置信息。java.lang.String[]
getTurnWeightNames()
获取网络数据的转向字段名称。java.lang.String[]
getWeightNames()
获取网络数据的权值字段名称。boolean
reloadModel()
重新加载网络模型。void
setProviderContext(ProviderContext context)
设置服务提供者上下文。FacilityAnalyst2DResult
traceDownFromEdge(int edgeID, FacilityAnalystParameter parameter)
根据给定的弧段 ID 进行下游追踪,即查找给定弧段的下游,返回下游包含的弧段、结点及总耗费FacilityAnalyst2DResult
traceDownFromNode(int nodeID, FacilityAnalystParameter parameter)
根据给定的结点 ID 进行下游追踪,即查找给定结点的下游,返回下游包含的弧段、结点及总耗费FacilityAnalyst2DResult
traceUpFromEdge(int edgeID, FacilityAnalystParameter parameter)
根据给定的弧段 ID 进行上游追踪,即查找给定弧段的上游,返回上游包含的弧段、结点及总耗费FacilityAnalyst2DResult
traceUpFromNode(int nodeID, FacilityAnalystParameter parameter)
根据给定的结点 ID 进行上游追踪,即查找给定结点的上游,返回上游包含的弧段、结点及总耗费double
updateEdgeWeight(int edgeID, int fromNodeID, int toNodeID, java.lang.String weightField, double weight)
更新弧段的权值。double
updateTurnNodeWeight(int nodeID, int fromEdgeID, int toEdgeID, java.lang.String turnWeightField, double weight)
更新转向结点的权值。-
从类继承的方法 com.supermap.services.providers.RestProviderBase
clearCache, dispose, executeRequest, executeRequest, executeRequest, executeRequestByApacheHttpClientForByteArray, executeRequestByRestletClientForByteArray, executeRequestForByteArray, executeRequestForByteArray, executeRequestForByteArray, executeRequestForByteArray, executeRequestForList, executeRequestForList, executeRequestForList, executeRequestForList, executeRequestForStream, executeRequestForStream, executeRequestForStream, executeRequestForText, executeRequestForText, executeRequestForText, getApacheHttpClient, getRestletRequest, handleExeption, init, initHttpClient, newAndSetClient, rectifyRestServiceRootURL
-
-
-
-
构造器详细资料
-
RestTransportationAnalystProvider
public RestTransportationAnalystProvider()
构造函数。
-
RestTransportationAnalystProvider
public RestTransportationAnalystProvider(RestTransportationAnalystProviderSetting setting)
构造函数。
- 参数:
setting
- Rest交通网络服务提供者参数对象。
-
-
方法详细资料
-
setProviderContext
public void setProviderContext(ProviderContext context)
从接口复制的说明:ProviderContextAware
设置服务提供者上下文。
- 指定者:
setProviderContext
在接口中ProviderContextAware
- 参数:
context
- 服务提供者上下文。
-
computeWeightMatrix
public double[][] computeWeightMatrix(int[] nodeIDs, TransportationAnalystParameter parameter)
从接口复制的说明:TransportationAnalystProvider
通过交通网络分析参数,得出一个耗费矩阵。该矩阵是一个二维 double 数组,用来存储任意两点间的资源消耗。
- 指定者:
computeWeightMatrix
在接口中TransportationAnalystProvider
- 参数:
nodeIDs
- 需要计算耗费矩阵的点的ID的集合parameter
- 交通网络分析通用参数。可选参数,默认使用TransportationAnalystSetting中的设置。- 返回:
- 存储任意两点间耗费的二维矩阵。
-
computeWeightMatrix
public double[][] computeWeightMatrix(Point2D[] points, TransportationAnalystParameter parameter)
从接口复制的说明:TransportationAnalystProvider
通过交通网络分析参数,得出一个耗费矩阵。该矩阵是一个二维 double 数组,用来存储任意两点间的资源消耗。
- 指定者:
computeWeightMatrix
在接口中TransportationAnalystProvider
- 参数:
points
- 需要计算耗费矩阵的点集合parameter
- 交通网络分析通用参数。可选参数,默认使用TransportationAnalystSetting中的设置。- 返回:
- 存储任意两点间耗费的二维矩阵。
-
findClosestFacility
public ClosestFacilityPaths<java.lang.Integer> findClosestFacility(int[] facilityIDs, int eventID, int expectFacilityCount, boolean fromEvent, double maxWeight, TransportationAnalystParameter parameter)
从接口复制的说明:TransportationAnalystProvider
最近设施查找分析,事件点以网络结点 ID 表示。
近设施分析是指在网络上给定一个事件点和一组设施点,为事件点查找以最小耗费能到达的一个或几个设施点,结果为从事件点到设施点(或从设施点到事件点)的最佳路径。
- 设施点:最近设施分析的基本要素,也就是学校、超市、加油站等服务设施。
- 事件点:为最近设施分析的基本要素,就是需要服务设施的事件位置。
使用场景一:例如事件发生点是一起交通事故,要求查找在10分钟内能到达的最近医院,超过10分钟能到达的都不予考虑。此例中,事故发生地即是一个事件点,周边的医院则是设施点。最近设施查找实际上也是一种路径分析,因此,同样可以应用障碍边和障碍点的设置,在行驶路途上这些障碍将不能被穿越,在路径分析中会予以考虑。
在进行最近设施查找分析时,事件点的指定方式有两种,一个是可以以坐标点的形式指定;一个是以网络数据集中的结点ID指定, 也就是将该网络结点看做事件点,本方法中事件点的指定是采用结点 ID 号的方式。
- 指定者:
findClosestFacility
在接口中TransportationAnalystProvider
- 参数:
facilityIDs
- 设施结点ID数组,必设参数。eventID
- 事件点坐标,必设参数。expectFacilityCount
- 要查找的设施点数量。可选参数,默认值为1。fromEvent
- 是否从事件点到设施点进行查找。可选参数,默认为false。maxWeight
- 查找半径,必设参数。单位同网络分析环境中设置的阻力字段一致,如果要查找整个网络,该值设为 0。parameter
- 交通网络分析通用参数。可选参数,默认使用TransportationAnalystSetting中的设置。- 返回:
- 最近设施分析结果路径集合。
-
findClosestFacility
public ClosestFacilityPaths<Point2D> findClosestFacility(Point2D[] facilityPoints, Point2D eventPoint, int expectFacilityCount, boolean fromEvent, double maxWeight, TransportationAnalystParameter parameter)
从接口复制的说明:TransportationAnalystProvider
最近设施查找分析,事件点以点坐标表示。
近设施分析是指在网络上给定一个事件点和一组设施点,为事件点查找以最小耗费能到达的一个或几个设施点,结果为从事件点到设施点(或从设施点到事件点)的最佳路径。
- 设施点:最近设施分析的基本要素,也就是学校、超市、加油站等服务设施。
- 事件点:为最近设施分析的基本要素,就是需要服务设施的事件位置。
使用场景一:例如事件发生点是一起交通事故,要求查找在10分钟内能到达的最近医院,超过10分钟能到达的都不予考虑。此例中,事故发生地即是一个事件点,周边的医院则是设施点。最近设施查找实际上也是一种路径分析,因此,同样可以应用障碍边和障碍点的设置,在行驶路途上这些障碍将不能被穿越,在路径分析中会予以考虑。
在进行最近设施查找分析时,事件点的指定方式有两种,一个是可以以坐标点的形式指定;一个是以网络数据集中的结点ID指定, 也就是将该网络结点看做事件点,本方法中事件点的指定是采用坐标点的方式。
- 指定者:
findClosestFacility
在接口中TransportationAnalystProvider
- 参数:
facilityPoints
- 设施结点坐标数组,必设参数。eventPoint
- 事件点坐标,必设参数。expectFacilityCount
- 要查找的设施点数量。可选参数,默认值为1。fromEvent
- 是否从事件点到设施点进行查找。可选参数,默认为false。maxWeight
- 查找半径。单位同网络分析环境中设置的阻力字段一致,如果要查找整个网络,该值设为 0。parameter
- 交通网络分析通用参数。可选参数,默认使用TransportationAnalystSetting中的设置。- 返回:
- 最近设施分析结果路径集合。
-
findLocation
public LocationAnalystResult findLocation(LocationAnalystParameter parameter)
从接口复制的说明:TransportationAnalystProvider
选址分区分析。
选址分区分析是为了确定一个或多个待建设施的最佳或最优位置, 使得设施可以用一种最经济有效的方式为需求方提供服务或者商品。 选址分区不仅仅是一个选址过程,还要将需求点的需求分配到相应的新建设施的服务区中,因此称之为选址与分区。
在选址分区分析过程中,资源供给中心以及分析模式的设定是在 LocationAnalystParameter 类型的参数 parameter 中实现的,具体细节参见
LocationAnalystParameter
类。在分析过程中使用的需求点都为网络结点,即除了各种类型的中心点所对应的网络结点, 所有网络结点都作为资源需求点参与选址分区分析,如果要排除某部分结点,可以将其设置为障碍点。
例子:如下图所示,某个区域还没有邮局,现在想在这个区域内建立邮局,有15个待选地点(如图一所示,蓝色方框代表 15个候选地点),将在这些待选点中选择7个最佳地点建立邮局。最佳选址要满足,居民点中的居民步行去邮局办理业务的 步行时间要在30分钟以内,同时每个邮局能够服务的居民总人数有限,在同时满足这两个条件的基础上,选址分区分析会 给出以个最佳的选址位置,并且圈出每个邮局的服务区域(如图二所示,红色点表示最后选出的7个建立邮局的最佳位置)。
备注:下面两幅中的网络数据集的所有网络结点被看做是该区域的居民点全部参与选址分区分析, 居民点中的居民数目即为该居民点所需服务的数量。
图一 用于分析的网络数据集和15个候选中心示意图
图二 选址分区分析结果示意图- 指定者:
findLocation
在接口中TransportationAnalystProvider
- 参数:
parameter
- 选址分区分析参数对象。- 返回:
- 选址分区分析结果。
-
findMTSPPath
public MTSPPaths<java.lang.Integer> findMTSPPath(int[] nodeIDs, int[] centerIDs, boolean hasLeastTotalCost, TransportationAnalystParameter parameter)
从接口复制的说明:TransportationAnalystProvider
多旅行商(物流配送)分析,配送中心以网络结点 ID 数组表示。
多旅行商分析也称为物流配送,是指在网络数据集中,给定 M 个配送中心点和 N 个配送目的地(M,N 为大于零的整数),查找经济有效的配送路径,并给出相应的行走路线。
物流配送功能就是解决如何合理分配配送次序和送货路线,使配送总花费达到最小或每个配送中心的花费达到最小。
多旅行商分析的结果将给出每个配送中心所负责的配送目的地,和每个配送中心向其负责的配送目的地配送货物时,经过各个配送目的地的顺序和相应的行走路线。 从而使各个配送中心的配送花费相对平均,或者使所有的配送中心的总花费最小。
例子:现在有50个报刊零售地(配送目的地),和4个报刊供应地(配送中心), 现寻求这4个供应地向报刊零售地发送报纸的最优路线, 属物流配送问题。下面的示意图展示了这个例子的情况以及进行多旅行商分析后的结构相框的简图。
下面图一,是分析的结果,其中红色大一点的圆点代表4个报刊供应地(配送中心), 而其他小一点的圆点代表报刊零售地(配送目的地),共有50个,分析结果的示意图如下图一, 图二所示,4个配送中心为图中粉色的大圆点所示;每一类颜色代表一个配送中心的配送方案, 包括它所负责的配送目的地、配送次序以及配送线路。下面以图一中矩形框圈出的第2号配送中心的配送方案来 详细说明,即图二所示:蓝色的标有数字的小圆点是2号配送中心所负责的配送目的地(共有18个),2号配送中心将按照配送目的地上标有数字的顺序依次发送报纸, 即先送1号报刊零售地,再送2号报刊零售地,依次类推,并且沿着分析得出的蓝色线路完成配送,回到配送中心。
图一 多旅行商分析的结果
图二 2号配送中心的配送方案- 指定者:
findMTSPPath
在接口中TransportationAnalystProvider
- 参数:
nodeIDs
- 配送目标点ID数组,必设参数。centerIDs
- 配送中心结点 ID 数组,以网络数据集中结点 ID 数组的形式指定配送中心,必设参数。hasLeastTotalCost
- 配送模式是否为总花费最小方案。可选参数,默认为 false,表示采用局部最优方案;设置为true 表示采用总花费最小方案。总花费最小方案中,可能会出现某些配送中心点配送的花费较多,而其他的配送中心点的花费较少的情况。 局部最优方案中,会控制每个配送中心点的花费,使各个中心点花费相对平均,此时总花费不一定最小。
parameter
- 交通网络分析通用参数。可选参数,默认使用TransportationAnalystSetting中的设置。- 返回:
- 多旅行商分析结果集。
-
findMTSPPath
public MTSPPaths<Point2D> findMTSPPath(Point2D[] points, Point2D[] centerPoints, boolean hasLeastTotalCost, TransportationAnalystParameter parameter)
从接口复制的说明:TransportationAnalystProvider
多旅行商(物流配送)分析,配送中心以点坐标串表示。
多旅行商分析也称为物流配送,是指在网络数据集中,给定 M 个配送中心点和 N 个配送目的地(M,N 为大于零的整数),查找经济有效的配送路径,并给出相应的行走路线。
物流配送功能就是解决如何合理分配配送次序和送货路线,使配送总花费达到最小或每个配送中心的花费达到最小。
多旅行商分析的结果将给出每个配送中心所负责的配送目的地,和每个配送中心向其负责的配送目的地配送货物时,经过各个配送目的地的顺序和相应的行走路线。 从而使各个配送中心的配送花费相对平均,或者使所有的配送中心的总花费最小。
例子:现在有50个报刊零售地(配送目的地),和4个报刊供应地(配送中心), 现寻求这4个供应地向报刊零售地发送报纸的最优路线, 属物流配送问题。下面的示意图展示了这个例子的情况以及进行多旅行商分析后的结构相框的简图。
下面图一,是分析的结果,其中红色大一点的圆点代表4个报刊供应地(配送中心), 而其他小一点的圆点代表报刊零售地(配送目的地),共有50个,分析结果的示意图如下图一, 图二所示,4个配送中心为图中粉色的大圆点所示;每一类颜色代表一个配送中心的配送方案, 包括它所负责的配送目的地、配送次序以及配送线路。下面以图一中矩形框圈出的第2号配送中心的配送方案来 详细说明,即图二所示:蓝色的标有数字的小圆点是2号配送中心所负责的配送目的地(共有18个),2号配送中心将按照配送目的地上标有数字的顺序依次发送报纸, 即先送1号报刊零售地,再送2号报刊零售地,依次类推,并且沿着分析得出的蓝色线路完成配送,回到配送中心。
图一 多旅行商分析的结果
图二 2号配送中心的配送方案- 指定者:
findMTSPPath
在接口中TransportationAnalystProvider
- 参数:
points
- 配送目标点坐标数组,必设参数。centerPoints
- 配送中心点坐标串,以点坐标串的形式指定配送中心,必设参数。hasLeastTotalCost
- 配送模式是否为总花费最小方案。可选参数,默认值为false, 表示采用局部最优方案;设置为true 表示采用总花费最小方案。总花费最小方案中,可能会出现某些配送中心点配送的花费较多,而其他的配送中心点的花费较少的情况。 局部最优方案中,会控制每个配送中心点的花费,使各个中心点花费相对平均,此时总花费不一定最小。
parameter
- 交通网络分析通用参数。可选参数,默认使用TransportationAnalystSetting中的设置。- 返回:
- 多旅行商分析结果集。
-
findPath
public Paths findPath(int[] nodeIDs, boolean hasLeastEdgeCount, TransportationAnalystParameter parameter)
从接口复制的说明:TransportationAnalystProvider
最佳路径分析。
最佳路经分析解决的问题是,在网络数据集中,给定 N 个点(N 大于等于2),找出按照给定点的次序依次经过这 N 个点的阻抗最小的路经。 “阻抗最小”有多种理解,如时间最短、费用最低、风景最好、路况最佳、过桥最少、收费站最少、经过乡村最多等。
调用该方法实现路径查找,查找的结果就是依次经过 N 个点(N 大于等于2)的最佳路径。
例子:如果要顺序访问1、2、3、4四个结点并查找经过这四个结点的最佳路径, 则需要分别找到1、2结点间的最佳路径 R1_2,2、3间的最佳路径 R2_3和3、4结点间的最佳路径 R3_4,结果顺序访问1、2、3、4四个结点的最佳路径为 R= R1_2 + R2_3 + R3_4。
最佳路径分析与旅行商分析的异同:
- 相同点:都是在网络中寻找遍历所有经过点的花费最少的路径。
- 不同点:在遍历所有经过点的过程,对访问经过点的顺序处理有所不同。 最佳路径分析必须按照指定的顺序访问所有经过点,而旅行商分析需要确定最优次序来访问所有点, 而并不一定按照指定的经过点的次序。有关旅行商分析的详细内容,请参见
方法。
- 指定者:
findPath
在接口中TransportationAnalystProvider
- 参数:
nodeIDs
- 分析需要经过的结点的ID数组,必设参数。hasLeastEdgeCount
- 是否按弧段数最少的模式查询。可选参数,默认为false, 代表不按照弧段最少进行查询。按照弧段数最少进行查询时,由于弧段数少不代表弧段长度短,所以此时查出的结果可能不是最短路径。 如下图所示,如果连接AB 的绿色路径的弧段数少于黄色路径,当本参数设置为 true 时,绿色路径就是查询得到的路径,当参数设置为 false 时,黄色路径就是查询得到的路径。
parameter
- 交通网络分析通用参数。可选参数,默认使用TransportationAnalystSetting中的设置。- 返回:
- 最佳路径分析结果集,目前实际上其中只包含一个元素。
-
findPath
public Paths findPath(Point2D[] points, boolean hasLeastEdgeCount, TransportationAnalystParameter parameter)
从接口复制的说明:TransportationAnalystProvider
最佳路径分析。
最佳路经分析解决的问题是,在网络数据集中,给定 N 个点(N 大于等于2),找出按照给定点的次序依次经过这 N 个点的阻抗最小的路经。 “阻抗最小”有多种理解,如时间最短、费用最低、风景最好、路况最佳、过桥最少、收费站最少、经过乡村最多等。
调用该方法实现路径查找,查找的结果就是依次经过 N 个点(N 大于等于2)的最佳路径。
例子:如果要顺序访问1、2、3、4四个结点并查找经过这四个结点的最佳路径, 则需要分别找到1、2结点间的最佳路径 R1_2,2、3间的最佳路径 R2_3和3、4结点间的最佳路径 R3_4,结果顺序访问1、2、3、4四个结点的最佳路径为 R= R1_2 + R2_3 + R3_4。
最佳路径分析与旅行商分析的异同:
- 相同点:都是在网络中寻找遍历所有经过点的花费最少的路径。
- 不同点:在遍历所有经过点的过程,对访问经过点的顺序处理有所不同。 最佳路径分析必须按照指定的顺序访问所有经过点,而旅行商分析需要确定最优次序来访问所有点, 而并不一定按照指定的经过点的次序。有关旅行商分析的详细内容,请参见
方法。
- 指定者:
findPath
在接口中TransportationAnalystProvider
- 参数:
points
- 需要经过的站点的坐标数组,必设参数。hasLeastEdgeCount
- 是否按弧段数最少的模式查询。可选参数,默认为false, 代表不按照弧段最少进行查询。按照弧段数最少进行查询时,由于弧段数少不代表弧段长度短,所以此时查出的结果可能不是最短路径。 如下图所示,如果连接AB 的绿色路径的弧段数少于黄色路径,当本参数设置为 true 时,绿色路径就是查询得到的路径,当参数设置为 false 时,黄色路径就是查询得到的路径。
parameter
- 交通网络分析通用参数。可选参数,默认使用TransportationAnalystSetting中的设置。- 返回:
- 最佳路径分析结果集,目前实际上其中只包含一个元素。
-
findServiceArea
public ServiceAreaResults<java.lang.Integer> findServiceArea(int[] centerIDs, double[] weights, boolean isFromCenter, boolean isCenterMutuallyExclusive, TransportationAnalystParameter parameter)
从接口复制的说明:TransportationAnalystProvider
服务区分析。
服务区分析是为网络上指定的服务中心点查找其服务范围。
服务区:以指定点为中心,在一定阻力范围内,包含所有可通达边、通达点的一个区域。 单的说就是提供某种特定服务的位置按一定的条件所服务的区域。
服务区分析:为网络上指定的位置点计算服务范围。例如:为网络上某点计算其30分钟的服务区,则结果服务区内,任意点出发到该点的时间都不会超过30分钟。
如下面的示意图所示,展示了服务区分析将要解决的问题以及结果会提供什么样的信息。 图中的蓝色圆点代表提供服务的服务中心点, 各种颜色的面状区域就是以相应的服务中心点为中心,在给定的阻力范围内的服务区。
- 指定者:
findServiceArea
在接口中TransportationAnalystProvider
- 参数:
centerIDs
- 服务中心节点ID数组,必设参数。weights
- 服务半径集合,必设参数。该集合的大小跟服务中心个数一致, 标识了在对每个服务中心进行服务区分析时,所用的范围值。例如设置 weights[0] 为 30.0,可表明在第一个服务中心的结果服务区内, 任意点出发到该服务中心的时间都不应超过30分钟。isFromCenter
- 是否从中心点开始分析,可选参数,默认为false 表示不从中心点开始分析。从中心点开始分析和不从中心点开始分析,体现了服务中心和需要该服务的需求地的关系模式。 从中心点开始分析,是一个服务中心向服务需求地提供服务;而不从中心点开始分析, 是一个服务需求地主动到服务中心获得服务。
例如:某个奶站向各个居民点送牛奶,如果要对这个奶站进行服务区分析,看这个奶站在允许的条件下所能服务的范围,那么在实际分析过程中就应当使用从中心点开始分析的模式;另一个例子,如果想分析一个区域的某个学校在允许的条件下所能服务的区域时,在现实中,都是学生主动来到学校学习,接受学校提供的服务,那么在实际分析过程中就应当使用不从中心点开始分析的模式。
isCenterMutuallyExclusive
- 是否对分析结果服务区进行互斥处理,可选参数,默认为False 表示不进行互斥处理, 若设置为 true, 表示如果分析出的服务区有重叠的部分,则进行互斥处理。注意:中心点互斥分析暂不支持。互斥处理的示例如下图所示,左图未进行互斥处理,右图进行了互斥处理。
未进行互斥处理的效果 进行了互斥处理的效果 parameter
- 交通网络分析通用参数。可选参数,默认使用TransportationAnalystSetting中的设置。- 返回:
- 服务区分析结果。为一个数组,数组的大小跟服务中心的个数一致,数组中每一个元素对应了每一个服务中心的服务区描述。
-
findServiceArea
public ServiceAreaResults<Point2D> findServiceArea(Point2D[] centerPoints, double[] weights, boolean isFromCenter, boolean isCenterMutuallyExclusive, TransportationAnalystParameter parameter)
从接口复制的说明:TransportationAnalystProvider
服务区分析。
服务区分析是为网络上指定的服务中心点查找其服务范围。
服务区:以指定点为中心,在一定阻力范围内,包含所有可通达边、通达点的一个区域。 单的说就是提供某种特定服务的位置按一定的条件所服务的区域。
服务区分析:为网络上指定的位置点计算服务范围。例如:为网络上某点计算其30分钟的服务区,则结果服务区内,任意点出发到该点的时间都不会超过30分钟。
如下面的示意图所示,展示了服务区分析将要解决的问题以及结果会提供什么样的信息。 图中的蓝色圆点代表提供服务的服务中心点, 各种颜色的面状区域就是以相应的服务中心点为中心,在给定的阻力范围内的服务区。
- 指定者:
findServiceArea
在接口中TransportationAnalystProvider
- 参数:
centerPoints
- 服务中心点坐标数组,必设参数。weights
- 服务半径集合,必设参数。该集合的大小跟服务中心个数一致, 标识了在对每个服务中心进行服务区分析时,所用的范围值。例如设置 weights[0] 为 30.0,可表明在第一个服务中心的结果服务区内, 任意点出发到该服务中心的时间都不应超过30分钟。isFromCenter
- 是否从中心点开始分析,可选参数,默认为false 表示不从中心点开始分析。从中心点开始分析和不从中心点开始分析,体现了服务中心和需要该服务的需求地的关系模式。 从中心点开始分析,是一个服务中心向服务需求地提供服务;而不从中心点开始分析, 是一个服务需求地主动到服务中心获得服务。
例如:某个奶站向各个居民点送牛奶,如果要对这个奶站进行服务区分析,看这个奶站在允许的条件下所能服务的范围,那么在实际分析过程中就应当使用从中心点开始分析的模式;另一个例子,如果想分析一个区域的某个学校在允许的条件下所能服务的区域时,在现实中,都是学生主动来到学校学习,接受学校提供的服务,那么在实际分析过程中就应当使用不从中心点开始分析的模式。
isCenterMutuallyExclusive
- 是否对分析结果服务区进行互斥处理,可选参数,默认为False 表示不进行互斥处理, 若设置为 true, 表示如果分析出的服务区有重叠的部分,则进行互斥处理。注意:中心点互斥分析暂不支持。互斥处理的示例如下图所示,左图未进行互斥处理,右图进行了互斥处理。
未进行互斥处理的效果 进行了互斥处理的效果 parameter
- 交通网络分析通用参数。可选参数,默认使用TransportationAnalystSetting中的设置。- 返回:
- 服务区分析结果。为一个数组,数组的大小跟服务中心的个数一致,数组中每一个元素对应了每一个服务中心的服务区描述。
-
findServiceArea
public ServiceAreaResults<java.lang.Integer> findServiceArea(int[] centerIDs, double[] weights, ServiceAreaAnalystParameter parameter)
- 指定者:
findServiceArea
在接口中TransportationAnalystProvider
- 参数:
centerIDs
- 服务中心节点ID数组,必设参数。weights
- 服务半径集合,必设参数。该集合的大小跟服务中心个数一致, 标识了在对每个服务中心进行服务区分析时,所用的范围值。例如设置 weights[0] 为 30.0,可表明在第一个服务中心的结果服务区内, 任意点出发到该服务中心的时间都不应超过30分钟。parameter
- 服务区交通网络分析参数。包含服务区分析的可选参数- 返回:
- 服务区分析结果。为一个数组,数组的大小跟服务中心的个数一致,数组中每一个元素对应了每一个服务中心的服务区描述。
-
findServiceArea
public ServiceAreaResults<Point2D> findServiceArea(Point2D[] centerPoints, double[] weights, ServiceAreaAnalystParameter parameter)
- 指定者:
findServiceArea
在接口中TransportationAnalystProvider
- 参数:
centerPoints
- 服务中心点坐标数组,必设参数。weights
- 服务半径集合,必设参数。该集合的大小跟服务中心个数一致, 标识了在对每个服务中心进行服务区分析时,所用的范围值。例如设置 weights[0] 为 30.0,可表明在第一个服务中心的结果服务区内, 任意点出发到该服务中心的时间都不应超过30分钟。parameter
- 服务区交通网络分析参数。包含服务区分析的可选参数- 返回:
- 服务区分析结果。为一个数组,数组的大小跟服务中心的个数一致,数组中每一个元素对应了每一个服务中心的服务区描述。
-
findTSPPath
public TSPPaths findTSPPath(int[] nodeIDsToVisit, boolean endNodeAssigned, TransportationAnalystParameter parameter)
从接口复制的说明:TransportationAnalystProvider
旅行商分析。
旅行商分析是查找经过指定一系列点的路径,旅行商分析是无序的路径分析。旅行商可以自己决定访问结点的顺序,目标是旅行路线阻抗总和最小(或接近最小)。
在旅行商分析中,如果指定了终止点,则旅行商必须最后一个访问终止点,而其他经过点的访问次序有旅行商自己决定。
在旅行商分析中,需要途经的点是在 parameter 参数中指定的,其中点序列中的第一个点为旅行商的出发点。
最佳路径分析与旅行商分析的异同:
- 相同点:都是在网络中寻找遍历所有经过点的花费最少的路径。
- 不同点:在遍历所有经过点的过程,对访问经过点的顺序处理有所不同。 最佳路径分析必须按照指定的顺序访问所有经过点,而旅行商分析需要确定最优次序来访问所有点, 而并不一定按照指定的经过点的次序。有关最佳路径分析的详细内容,请参见
#findPath(Point2D[],boolean,String,TransportationAnalystParameter)
方法。
- 指定者:
findTSPPath
在接口中TransportationAnalystProvider
- 参数:
nodeIDsToVisit
- 必设参数,分析需要经过的结点的ID。endNodeAssigned
- 是否指定终止点。可选参数,默认为False,如果设置为true ,则表示指定终止点,则旅行商必须最后一个访问终止点,即途经的最后一个点。parameter
- 交通网络分析通用参数。可选参数,默认使用TransportationAnalystSetting中的设置。- 返回:
- 旅行商分析结果集合,目前实际上其中只包含一个元素。
-
findTSPPath
public TSPPaths findTSPPath(Point2D[] pointsToVisit, boolean endNodeAssigned, TransportationAnalystParameter parameter)
从接口复制的说明:TransportationAnalystProvider
旅行商分析。
旅行商分析是查找经过指定一系列点的路径,旅行商分析是无序的路径分析。旅行商可以自己决定访问结点的顺序,目标是旅行路线阻抗总和最小(或接近最小)。
在旅行商分析中,如果指定了终止点,则旅行商必须最后一个访问终止点,而其他经过点的访问次序有旅行商自己决定。
在旅行商分析中,需要途经的点是在 parameter 参数中指定的,其中点序列中的第一个点为旅行商的出发点。
最佳路径分析与旅行商分析的异同:
- 相同点:都是在网络中寻找遍历所有经过点的花费最少的路径。
- 不同点:在遍历所有经过点的过程,对访问经过点的顺序处理有所不同。 最佳路径分析必须按照指定的顺序访问所有经过点,而旅行商分析需要确定最优次序来访问所有点, 而并不一定按照指定的经过点的次序。有关最佳路径分析的详细内容,请参见
#findPath(Point2D[],boolean,String,TransportationAnalystParameter)
方法。
- 指定者:
findTSPPath
在接口中TransportationAnalystProvider
- 参数:
pointsToVisit
- 必设参数,分析需要经过的站点的坐标endNodeAssigned
- 是否指定终止点。可选参数,默认为False,如果设置为true 则表示指定终止点,则旅行商必须最后一个访问终止点,即途经的最后一个点。parameter
- 交通网络分析通用参数。可选参数,默认使用TransportationAnalystSetting中的设置。- 返回:
- 旅行商分析结果集合,目前实际上其中只包含一个元素。
-
updateEdgeWeight
public double updateEdgeWeight(int edgeID, int fromNodeID, int toNodeID, java.lang.String weightField, double weight)
从接口复制的说明:TransportationAnalystProvider
更新弧段的权值。
- 指定者:
updateEdgeWeight
在接口中TransportationAnalystProvider
- 参数:
edgeID
- 目标弧段 ID。fromNodeID
- 目标弧段的起始结点 ID。toNodeID
- 目标弧段的终止结点 ID。weightField
- 目标弧段对应的权值信息(即WeightFieldInfo
)的名称,fromNodeID 和 toNodeID 参数决定了更新其中的正向字段还是反向字段。weight
- 新的权值。- 返回:
- 更新成功返回更新前的权值,失败返回 double 类型数据的最小值。
-
updateTurnNodeWeight
public double updateTurnNodeWeight(int nodeID, int fromEdgeID, int toEdgeID, java.lang.String turnWeightField, double weight)
从接口复制的说明:TransportationAnalystProvider
更新转向结点的权值。
- 指定者:
updateTurnNodeWeight
在接口中TransportationAnalystProvider
- 参数:
nodeID
- 目标转向结点 ID。fromEdgeID
- 目标转向结点的起始弧段 ID。toEdgeID
- 目标转向结点的终止弧段 ID。turnWeightField
- 转向权值字段的名称。weight
- 新的权值。- 返回:
- 成功返回更新前的权值,失败返回 double 类型数据的最小值。
-
getNetworkDataName
public java.lang.String getNetworkDataName()
从接口复制的说明:TransportationAnalystProvider
获取网络数据名称。
- 指定者:
getNetworkDataName
在接口中TransportationAnalystProvider
- 返回:
- 网络数据名称。
-
getPrjCoordSys
public PrjCoordSys getPrjCoordSys()
从接口复制的说明:TransportationAnalystProvider
获取网络数据的投影信息
- 指定者:
getPrjCoordSys
在接口中TransportationAnalystProvider
- 返回:
-
getWeightNames
public java.lang.String[] getWeightNames()
从接口复制的说明:TransportationAnalystProvider
获取网络数据的权值字段名称。
- 指定者:
getWeightNames
在接口中TransportationAnalystProvider
- 返回:
-
getTurnWeightNames
public java.lang.String[] getTurnWeightNames()
从接口复制的说明:TransportationAnalystProvider
获取网络数据的转向字段名称。
- 指定者:
getTurnWeightNames
在接口中TransportationAnalystProvider
- 返回:
-
reloadModel
public boolean reloadModel()
从接口复制的说明:TransportationAnalystProvider
重新加载网络模型。
- 指定者:
reloadModel
在接口中TransportationAnalystProvider
- 返回:
-
getRestProviderSetting
protected RestProviderSetting getRestProviderSetting()
从类复制的说明:RestProviderBase
返回REST服务提供者配置信息。- 指定者:
getRestProviderSetting
在类中RestProviderBase
- 返回:
-
findCriticalFacilitiesUpFromEdge
public FacilityAnalyst2DResult findCriticalFacilitiesUpFromEdge(int[] sourceNodeIDs, int edgeID, FacilityAnalystParameter parameter)
-
findCriticalFacilitiesDownFromEdge
public FacilityAnalyst2DResult findCriticalFacilitiesDownFromEdge(int[] sourceNodeIDs, int edgeID, FacilityAnalystParameter parameter)
-
findCriticalFacilitiesUpFromNode
public FacilityAnalyst2DResult findCriticalFacilitiesUpFromNode(int[] sourceNodeIDs, int nodeID, FacilityAnalystParameter parameter)
-
findCriticalFacilitiesDownFromNode
public FacilityAnalyst2DResult findCriticalFacilitiesDownFromNode(int[] sourceNodeIDs, int nodeID, FacilityAnalystParameter parameter)
-
burstAnalyseFromNode
public BurstAnalyseResult burstAnalyseFromNode(int[] sourceNodeIDs, int nodeID, FacilityAnalystParameter parameter)
-
burstAnalyseFromEdge
public BurstAnalyseResult burstAnalyseFromEdge(int[] sourceNodeIDs, int edgeID, FacilityAnalystParameter parameter)
-
findConnectedEdgesFromEdges
public FacilityAnalyst2DResult findConnectedEdgesFromEdges(int[] edgeIDs, boolean returnFeatures, boolean connected)
从接口复制的说明:TransportationAnalystProvider
根据给定的弧段 ID 数组,查找与这些弧段相连通的弧段,返回弧段 ID 数组、要素数组- 指定者:
findConnectedEdgesFromEdges
在接口中TransportationAnalystProvider
- 参数:
edgeIDs
- 给定的弧段 ID 数组returnFeatures
- 返回要素,为true,返回要素,反之,则不返回connected
- 相连通或者不相联通,为true,则返回相连通的弧段;为false,则返回不相连通的弧段- 返回:
-
findConnectedEdgesFromNodes
public FacilityAnalyst2DResult findConnectedEdgesFromNodes(int[] nodeIDs, boolean returnFeatures, boolean connected)
从接口复制的说明:TransportationAnalystProvider
根据给定的结点 ID 数组,查找与这些结点相连通或者不相连通的弧段,返回弧段 ID 数组、要素数组- 指定者:
findConnectedEdgesFromNodes
在接口中TransportationAnalystProvider
- 参数:
nodeIDs
- 给定的结点 ID 数组returnFeatures
- 返回要素,为true,返回要素,反之,则不返回connected
- 相连通或者不相联通,为true,则返回相连通的弧段;为false,则返回不相连通的弧段- 返回:
-
traceDownFromNode
public FacilityAnalyst2DResult traceDownFromNode(int nodeID, FacilityAnalystParameter parameter)
从接口复制的说明:TransportationAnalystProvider
根据给定的结点 ID 进行下游追踪,即查找给定结点的下游,返回下游包含的弧段、结点及总耗费- 指定者:
traceDownFromNode
在接口中TransportationAnalystProvider
- 返回:
-
traceUpFromNode
public FacilityAnalyst2DResult traceUpFromNode(int nodeID, FacilityAnalystParameter parameter)
从接口复制的说明:TransportationAnalystProvider
根据给定的结点 ID 进行上游追踪,即查找给定结点的上游,返回上游包含的弧段、结点及总耗费- 指定者:
traceUpFromNode
在接口中TransportationAnalystProvider
- 参数:
nodeID
- 指定的结点 ID- 返回:
-
traceDownFromEdge
public FacilityAnalyst2DResult traceDownFromEdge(int edgeID, FacilityAnalystParameter parameter)
从接口复制的说明:TransportationAnalystProvider
根据给定的弧段 ID 进行下游追踪,即查找给定弧段的下游,返回下游包含的弧段、结点及总耗费- 指定者:
traceDownFromEdge
在接口中TransportationAnalystProvider
- 参数:
edgeID
- 指定的弧段 ID- 返回:
-
traceUpFromEdge
public FacilityAnalyst2DResult traceUpFromEdge(int edgeID, FacilityAnalystParameter parameter)
从接口复制的说明:TransportationAnalystProvider
根据给定的弧段 ID 进行上游追踪,即查找给定弧段的上游,返回上游包含的弧段、结点及总耗费- 指定者:
traceUpFromEdge
在接口中TransportationAnalystProvider
- 参数:
edgeID
- 指定的弧段 ID- 返回:
-
-