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