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