C# Class SuperMap.Connector.NetworkAnalyst

NetworkAnalyst 组件接口,用以访问 SuperMap iServer 网络分析服务组件中的REST服务,封装了与网络分析相关的一系列功能。
只能对 SuperMap REST 接口类型服务的访问。 实例化NetworkAnalyst对象时需要使用明确的网络分析服务组件地址(例如:http://localhost:8090/iserver/services/transportationanalyst-sample/rest")
Show file Open project: SuperMap/iClient-for-DotNet

Public Methods

Method Description
ComputeWeightMatrix ( string networkDatasetName, Point2D points ) : double[][]

根据坐标点数组,得出一个耗费矩阵。该矩阵是一个二维 double 数组,用来存储任意两点间的资源消耗。

ComputeWeightMatrix ( string networkDatasetName, Point2D points, TransportationAnalystParameter parameter ) : double[][]

根据指定的点集合和交通网络分析参数,得出一个耗费矩阵。该矩阵是一个二维 double 数组,用来存储任意两点间的资源消耗。

ComputeWeightMatrix ( string networkDatasetName, int nodeIDs ) : double[][]

根据节点ID数组,得出一个耗费矩阵。该矩阵是一个二维 double 数组,用来存储任意两点间的资源消耗。

ComputeWeightMatrix ( string networkDatasetName, int nodeIDs, TransportationAnalystParameter parameter ) : double[][]

根据指定的结点ID集合和交通网络分析参数,得出一个耗费矩阵。该矩阵是一个二维 double 数组,用来存储任意两点间的资源消耗。

FindClosestFacility ( string networkDatasetName, Point2D facilityPoints, Point2D eventPoint, int expectFacilityCount, bool fromEvent, double maxWeight, TransportationAnalystParameter parameter ) : List>

最近设施查找分析,事件点以点坐标表示。

最近设施分析是指在网络上给定一个事件点和一组设施点,为事件点查找以最小耗费能到达的一个或几个设施点,结果为从事件点到设施点(或从设施点到事件点)的最佳路径。

设施点:最近设施分析的基本要素,也就是学校、超市、加油站等服务设施。 事件点:为最近设施分析的基本要素,就是需要服务设施的事件位置。

使用场景一:例如事件发生点是一起交通事故,要求查找在10分钟内能到达的最近医院,超过10分钟能到达的都不予考虑。此例中,事故发生地即是一个事件点,周边的医院则是设施点。最近设施查找实际上也是一种路径分析, 因此,同样可以应用障碍边和障碍点的设置,在行驶路途上这些障碍将不能被穿越,在路径分析中会予以考虑。

FindClosestFacility ( string networkDatasetName, int facilityIDs, int eventID, int expectFacilityCount, bool fromEvent, double maxWeight, TransportationAnalystParameter parameter ) : List>

最近设施查找分析,事件点以网络结点 ID 表示。

最近设施分析是指在网络上给定一个事件点和一组设施点,为事件点查找以最小耗费能到达的一个或几个设施点,结果为从事件点到设施点(或从设施点到事件点)的最佳路径。

设施点:最近设施分析的基本要素,也就是学校、超市、加油站等服务设施。 事件点:为最近设施分析的基本要素,就是需要服务设施的事件位置。

使用场景一:例如事件发生点是一起交通事故,要求查找在10分钟内能到达的最近医院,超过10分钟能到达的都不予考虑。此例中,事故发生地即是一个事件点,周边的医院则是设施点。最近设施查找实际上也是一种路径分析, 因此,同样可以应用障碍边和障碍点的设置,在行驶路途上这些障碍将不能被穿越,在路径分析中会予以考虑。

FindLocation ( string networkDatasetName, LocationAnalystParameter parameter ) : LocationAnalystResult

选址分区分析。

选址分区分析是为了确定一个或多个待建设施的最佳或最优位置, 使得设施可以用一种最经济有效的方式为需求方提供服务或者商品。 选址分区不仅仅是一个选址过程,还要将需求点的需求分配到相应的新建设施的服务区中,因此称之为选址与分区。

在选址分区分析过程中,资源供给中心以及分析模式的设定是在 LocationAnalystParameter 类型的参数 parameter 中实现的,具体细节参见 SuperMap.Connector.Utility.LocationAnalystParameter 类。

在分析过程中使用的需求点都为网络结点,即除了各种类型的中心点所对应的网络结点, 所有网络结点都作为资源需求点参与选址分区分析,如果要排除某部分结点,可以将其设置为障碍点。

以下例子说明了选址分区的应用:某个区域还没有邮局,现要在这个区域内建立邮局,有15个待选地点(如左图所示,蓝色方框代表15个候选地点),将在这些待选点中选择7个最佳地点建立邮局。最佳选址要满足,居民点中的居民步行去邮局办理业务 的步行时间要在30分钟以内,同时每个邮局能够服务的居民总人数有限,在同时满足这两个条件的基础上,选址分区分析会给出以个最佳的选址位置,并且圈出每个邮局的服务区域(如右图所示,红色点表示最后选出的7个建立邮局的最佳位置)。备注:下面 两幅中的网络数据集的所有网络结点被看做是该区域的居民点全部参与选址分区分析,居民点中的居民数目即为该居民点所需服务的数量。

FindMTSPPath ( string networkDatasetName, Point2D points, Point2D centerPoints, bool hasLeastTotalCost, TransportationAnalystParameter parameter ) : List>

多旅行商(物流配送)分析,配送中心以点坐标串表示。

多旅行商分析也称为物流配送,是指在网络数据集中,给定 M 个配送中心点和 N 个配送目的地(M,N 为大于零的整数),查找经济有效的配送路径,并给出相应的行走路线。

物流配送功能就是解决如何合理分配配送次序和送货路线,使配送总花费达到最小或每个配送中心的花费达到最小。

多旅行商分析的结果将给出每个配送中心所负责的配送目的地,和每个配送中心向其负责的配送目的地配送货物时,经过各个配送目的地的顺序和相应的行走路线。 从而使各个配送中心 的配送花费相对平均,或者使所有的配送中心的总花费最小。

例子:现在有50个报刊零售地(配送目的地),和4个报刊供应地(配送中心), 现寻求这4个供应地向报刊零售地发送报纸的最优路线, 属物流配送问题。下面的示意图展示了这个例子的情况以及进行多旅行商分析后的简图。

如下图所示,左图中粉色大圆点代表4个报刊供应地(配送中心),而其他小圆点代表报刊零售地(配送目的地),共有50个;每一类颜色代表一个配送中心的配送方案,包括它所负责的配送目的地、配送次序以及配送线路。

右图为左图中矩形框圈出的第2号配送中心的配送方案:蓝色的标有数字的小圆点是2号配送中心所负责的配送目的地(共有18个),2号配送中心将按照配送目的地上标有数字的顺序依次发送报纸,即先送1号报刊零售地,再送2号报刊零售地,依次类推,并且沿着分析得出的蓝色线路完成配送,回到配送中心。

FindMTSPPath ( string networkDatasetName, int nodeIDs, int centerIDs, bool hasLeastTotalCost, TransportationAnalystParameter parameter ) : List>

多旅行商(物流配送)分析,配送中心以网络结点 ID 数组表示。

多旅行商分析也称为物流配送,是指在网络数据集中,给定 M 个配送中心点和 N 个配送目的地(M,N 为大于零的整数),查找经济有效的配送路径,并给出相应的行走路线。

物流配送功能就是解决如何合理分配配送次序和送货路线,使配送总花费达到最小或每个配送中心的花费达到最小。

多旅行商分析的结果将给出每个配送中心所负责的配送目的地,和每个配送中心向其负责的配送目的地配送货物时,经过各个配送目的地的顺序和相应的行走路线。 从而使各个配送中心 的配送花费相对平均,或者使所有的配送中心的总花费最小。

例子:现在有50个报刊零售地(配送目的地),和4个报刊供应地(配送中心), 现寻求这4个供应地向报刊零售地发送报纸的最优路线, 属物流配送问题。

FindPath ( string networkDatasetName, Point2D points, bool hasLeastEdgeCount, TransportationAnalystParameter parameter ) : List

最佳路径分析,根据坐标点进行分析。

最佳路径分析解决的问题是,在网络数据集中,给定 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 ( string networkDatasetName, int nodeIDs, bool hasLeastEdgeCount, TransportationAnalystParameter parameter ) : List

最佳路径分析,根据网络结点的 ID 进行分析。

最佳路径分析解决的问题是,在网络数据集中,给定 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 ( string networkDatasetName, Point2D points, bool hasLeastEdgeCount, TransportationAnalystParameter parameter, EventHandler completed, EventHandler failed ) : void

使用异步方式进行最佳路径分析,根据坐标点进行分析。

最佳路径分析解决的问题是,在网络数据集中,给定 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 ( string networkDatasetName, int nodeIDs, bool hasLeastEdgeCount, TransportationAnalystParameter parameter, EventHandler completed, EventHandler failed ) : void

使用异步方式进行最佳路径分析,根据网络结点的 ID 进行分析。此方法不会阻止调用线程。

最佳路径分析解决的问题是,在网络数据集中,给定 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。

FindServiceArea ( string networkDatasetName, Point2D centerPoints, double weights, bool isFromCenter, bool isCenterMutuallyExclusive, TransportationAnalystParameter parameter ) : List

根据坐标点进行服务区分析。

FindServiceArea ( string networkDatasetName, int centerIDs, double weights, bool isFromCenter, bool isCenterMutuallyExclusive, TransportationAnalystParameter parameter ) : List

根据网络节点ID进行服务区分析。

FindTSPPath ( string networkDatasetName, Point2D pointsToVisit, bool endNodeAssigned, TransportationAnalystParameter parameter ) : List

旅行商分析,根据坐标点进行分析。

旅行商分析是查找经过指定一系列点的路径,旅行商分析是无序的路径分析。旅行商可以自己决定访问结点的顺序,目标是旅行路线阻抗总和最小(或接近最小)。

在旅行商分析中,如果指定了终止点,则旅行商必须最后一个访问终止点,而其他经过点的访问次序由旅行商自己决定。

在旅行商分析中,需要途经的点是在 pointsToVisit 参数中指定的,其中点序列中的第一个点为旅行商的出发点。

最佳路径分析与旅行商分析的异同:

相同点:都是在网络中寻找遍历所有经过点的花费最少的路径。 不同点:在遍历所有经过点的过程,对访问经过点的顺序处理有所不同。 最佳路径分析必须按照指定的顺序访问所有经过点,而旅行商分析需要确定最优次序来访问所有点, 而并不一定按照指定的经过点的次序。有关最佳路径分析的详细内容,请参见FindPath(string, SuperMap.Connector.Utility.Point2D[],bool,SuperMap.Connector.Utility.TransportationAnalystParameter)方法。
FindTSPPath ( string networkDatasetName, int nodeIDsToVisit, bool endNodeAssigned, TransportationAnalystParameter parameter ) : List

旅行商分析,根据网络结点的 ID 进行分析。

旅行商分析是查找经过指定一系列点的路径,旅行商分析是无序的路径分析。旅行商可以自己决定访问结点的顺序,目标是旅行路线阻抗总和最小(或接近最小)。

在旅行商分析中,如果指定了终止点,则旅行商必须最后一个访问终止点,而其他经过点的访问次序由旅行商自己决定。

在旅行商分析中,需要途经的点是在 nodeIDsToVisit 参数中指定的,其中点序列中的第一个点为旅行商的出发点。

最佳路径分析与旅行商分析的异同:

相同点:都是在网络中寻找遍历所有经过点的花费最少的路径。 不同点:在遍历所有经过点的过程,对访问经过点的顺序处理有所不同。 最佳路径分析必须按照指定的顺序访问所有经过点,而旅行商分析需要确定最优次序来访问所有点, 而并不一定按照指定的经过点的次序。有关最佳路径分析的详细内容,请参见最佳路径分析FindPath(string,int[],bool,SuperMap.Connector.Utility.TransportationAnalystParameter)方法。
GetNetworkDatasetNames ( ) : List

获取交通网络分析服务中使用的所有网络数据集的名称。

GetNetworkDatasetPrj ( string networkDatasetName ) : PrjCoordSys

获取指定网络数据集投影信息。

GetTurnWeightNames ( string networkDatasetName ) : List

获取指定网络数据集的转向权值字段名称列表。

GetWeightNames ( string networkDatasetName ) : List

获取指定网络数据集的权值字段名称列表。

NetworkAnalyst ( string serviceUrl ) : System

构造函数。

ReloadModel ( string networkDatasetName ) : bool

重新加载网络模型。

UpdateEdgeWeight ( string networkDatasetName, int edgeID, int fromNodeID, int toNodeID, string weightField, double weight ) : bool

更新弧段的权值。

UpdateTurnNodeWeight ( string networkDatasetName, int nodeID, int fromEdgeID, int toEdgeID, string turnWeightField, double weight ) : bool

更新转向结点的权值。

Method Details

ComputeWeightMatrix() public method

根据坐标点数组,得出一个耗费矩阵。该矩阵是一个二维 double 数组,用来存储任意两点间的资源消耗。
参数 networkDatasetName为空时抛出异常。 服务端处理错误时抛出异常。
public ComputeWeightMatrix ( string networkDatasetName, Point2D points ) : double[][]
networkDatasetName string 用于唯一标识一个网络数据集的字符串,必设字段。
points Point2D 需要计算耗费矩阵的点集合。
return double[][]

ComputeWeightMatrix() public method

根据指定的点集合和交通网络分析参数,得出一个耗费矩阵。该矩阵是一个二维 double 数组,用来存储任意两点间的资源消耗。
参数 networkDatasetName为空时抛出异常。 服务端处理错误时抛出异常。
public ComputeWeightMatrix ( string networkDatasetName, Point2D points, TransportationAnalystParameter parameter ) : double[][]
networkDatasetName string 用于唯一标识一个网络数据集的字符串,必设字段。
points Point2D 需要计算耗费矩阵的点集合。
parameter TransportationAnalystParameter 交通网络分析通用参数。可选参数,默认返回EdgeIDs、NodeIDs、Routes信息。
return double[][]

ComputeWeightMatrix() public method

根据节点ID数组,得出一个耗费矩阵。该矩阵是一个二维 double 数组,用来存储任意两点间的资源消耗。
参数 networkDatasetName为空时抛出异常。 服务端处理错误时抛出异常。
public ComputeWeightMatrix ( string networkDatasetName, int nodeIDs ) : double[][]
networkDatasetName string 用于唯一标识一个网络数据集的字符串,必设字段。
nodeIDs int 计算耗费矩阵的结点 ID 的集合。
return double[][]

ComputeWeightMatrix() public method

根据指定的结点ID集合和交通网络分析参数,得出一个耗费矩阵。该矩阵是一个二维 double 数组,用来存储任意两点间的资源消耗。
参数 networkDatasetName为空时抛出异常。 服务端处理错误时抛出异常。
public ComputeWeightMatrix ( string networkDatasetName, int nodeIDs, TransportationAnalystParameter parameter ) : double[][]
networkDatasetName string 用于唯一标识一个网络数据集的字符串,必设字段。
nodeIDs int 计算耗费矩阵的结点 ID 的数组。
parameter TransportationAnalystParameter 交通网络分析通用参数。可选参数,默认返回EdgeIDs、NodeIDs、Routes信息。
return double[][]

FindClosestFacility() public method

最近设施查找分析,事件点以点坐标表示。

最近设施分析是指在网络上给定一个事件点和一组设施点,为事件点查找以最小耗费能到达的一个或几个设施点,结果为从事件点到设施点(或从设施点到事件点)的最佳路径。

设施点:最近设施分析的基本要素,也就是学校、超市、加油站等服务设施。 事件点:为最近设施分析的基本要素,就是需要服务设施的事件位置。

使用场景一:例如事件发生点是一起交通事故,要求查找在10分钟内能到达的最近医院,超过10分钟能到达的都不予考虑。此例中,事故发生地即是一个事件点,周边的医院则是设施点。最近设施查找实际上也是一种路径分析, 因此,同样可以应用障碍边和障碍点的设置,在行驶路途上这些障碍将不能被穿越,在路径分析中会予以考虑。

public FindClosestFacility ( string networkDatasetName, Point2D facilityPoints, Point2D eventPoint, int expectFacilityCount, bool fromEvent, double maxWeight, TransportationAnalystParameter parameter ) : List>
networkDatasetName string 用于唯一标识一个网络数据集的字符串,必设参数。
facilityPoints Point2D 表示设施点的坐标点数组,必设参数。
eventPoint Point2D 表示事件点的坐标点,必设参数。
expectFacilityCount int 要查找的设施点数量,可选参数,默认值为1。
fromEvent bool 是否从事件点到设施点进行查找,可选参数,默认为false。
maxWeight double 查找半径,必设参数。单位同 parameter(交通网络分析通用参数)中设置的权值字段一致,如果要查找整个网络,该值设为 0。
parameter TransportationAnalystParameter 交通网络分析通用参数。可选参数,默认返回EdgeIDs、NodeIDs、Routes信息。
return List>

FindClosestFacility() public method

最近设施查找分析,事件点以网络结点 ID 表示。

最近设施分析是指在网络上给定一个事件点和一组设施点,为事件点查找以最小耗费能到达的一个或几个设施点,结果为从事件点到设施点(或从设施点到事件点)的最佳路径。

设施点:最近设施分析的基本要素,也就是学校、超市、加油站等服务设施。 事件点:为最近设施分析的基本要素,就是需要服务设施的事件位置。

使用场景一:例如事件发生点是一起交通事故,要求查找在10分钟内能到达的最近医院,超过10分钟能到达的都不予考虑。此例中,事故发生地即是一个事件点,周边的医院则是设施点。最近设施查找实际上也是一种路径分析, 因此,同样可以应用障碍边和障碍点的设置,在行驶路途上这些障碍将不能被穿越,在路径分析中会予以考虑。

public FindClosestFacility ( string networkDatasetName, int facilityIDs, int eventID, int expectFacilityCount, bool fromEvent, double maxWeight, TransportationAnalystParameter parameter ) : List>
networkDatasetName string 用于唯一标识一个网络数据集的字符串,必设参数。
facilityIDs int 表示设施点的结点 ID 数组,必设参数,ID必须大于0。
eventID int 表示事件点的结点 ID,必设参数,ID必须大于0。
expectFacilityCount int 要查找的设施点数量,可选参数,默认值为1。
fromEvent bool 是否从事件点到设施点进行查找,可选参数,默认为false。
maxWeight double 查找半径,必设参数。单位同 parameter(交通网络分析通用参数)中设置的权值字段一致,如果要查找整个网络,该值设为 0。
parameter TransportationAnalystParameter 交通网络分析通用参数。可选参数,默认返回EdgeIDs、NodeIDs、Routes信息。
return List>

FindLocation() public method

选址分区分析。

选址分区分析是为了确定一个或多个待建设施的最佳或最优位置, 使得设施可以用一种最经济有效的方式为需求方提供服务或者商品。 选址分区不仅仅是一个选址过程,还要将需求点的需求分配到相应的新建设施的服务区中,因此称之为选址与分区。

在选址分区分析过程中,资源供给中心以及分析模式的设定是在 LocationAnalystParameter 类型的参数 parameter 中实现的,具体细节参见 SuperMap.Connector.Utility.LocationAnalystParameter 类。

在分析过程中使用的需求点都为网络结点,即除了各种类型的中心点所对应的网络结点, 所有网络结点都作为资源需求点参与选址分区分析,如果要排除某部分结点,可以将其设置为障碍点。

以下例子说明了选址分区的应用:某个区域还没有邮局,现要在这个区域内建立邮局,有15个待选地点(如左图所示,蓝色方框代表15个候选地点),将在这些待选点中选择7个最佳地点建立邮局。最佳选址要满足,居民点中的居民步行去邮局办理业务 的步行时间要在30分钟以内,同时每个邮局能够服务的居民总人数有限,在同时满足这两个条件的基础上,选址分区分析会给出以个最佳的选址位置,并且圈出每个邮局的服务区域(如右图所示,红色点表示最后选出的7个建立邮局的最佳位置)。备注:下面 两幅中的网络数据集的所有网络结点被看做是该区域的居民点全部参与选址分区分析,居民点中的居民数目即为该居民点所需服务的数量。

参数 networkDatasetName、parameter 为空时抛出异常。 服务端处理错误时抛出异常。
public FindLocation ( string networkDatasetName, LocationAnalystParameter parameter ) : LocationAnalystResult
networkDatasetName string 用于唯一标识一个网络数据集的字符串,必设字段。
parameter LocationAnalystParameter 选址分析参数。
return LocationAnalystResult

FindMTSPPath() public method

多旅行商(物流配送)分析,配送中心以点坐标串表示。

多旅行商分析也称为物流配送,是指在网络数据集中,给定 M 个配送中心点和 N 个配送目的地(M,N 为大于零的整数),查找经济有效的配送路径,并给出相应的行走路线。

物流配送功能就是解决如何合理分配配送次序和送货路线,使配送总花费达到最小或每个配送中心的花费达到最小。

多旅行商分析的结果将给出每个配送中心所负责的配送目的地,和每个配送中心向其负责的配送目的地配送货物时,经过各个配送目的地的顺序和相应的行走路线。 从而使各个配送中心 的配送花费相对平均,或者使所有的配送中心的总花费最小。

例子:现在有50个报刊零售地(配送目的地),和4个报刊供应地(配送中心), 现寻求这4个供应地向报刊零售地发送报纸的最优路线, 属物流配送问题。下面的示意图展示了这个例子的情况以及进行多旅行商分析后的简图。

如下图所示,左图中粉色大圆点代表4个报刊供应地(配送中心),而其他小圆点代表报刊零售地(配送目的地),共有50个;每一类颜色代表一个配送中心的配送方案,包括它所负责的配送目的地、配送次序以及配送线路。

右图为左图中矩形框圈出的第2号配送中心的配送方案:蓝色的标有数字的小圆点是2号配送中心所负责的配送目的地(共有18个),2号配送中心将按照配送目的地上标有数字的顺序依次发送报纸,即先送1号报刊零售地,再送2号报刊零售地,依次类推,并且沿着分析得出的蓝色线路完成配送,回到配送中心。

public FindMTSPPath ( string networkDatasetName, Point2D points, Point2D centerPoints, bool hasLeastTotalCost, TransportationAnalystParameter parameter ) : List>
networkDatasetName string 用于唯一标识一个网络数据集的字符串,必设参数。
points Point2D 配送目标坐标点数组,必设参数。
centerPoints Point2D 配送中心坐标点数组,必设参数。
hasLeastTotalCost bool /// 配送模式是否为总花费最小方案。可选参数,默认值为false, 表示采用局部最优方案;设置为true 表示采用总花费最小方案。 /// 总花费最小方案中,可能会出现某些配送中心点配送的花费较多,而其他的配送中心点的花费较少的情况。 局部最优方案中,会控制每个配送中心点的花费,使各个中心点花费相对平均,此时总花费不一定最小。 ///
parameter TransportationAnalystParameter 交通网络分析通用参数。可选参数,默认返回EdgeIDs、NodeIDs、Routes信息。
return List>

FindMTSPPath() public method

多旅行商(物流配送)分析,配送中心以网络结点 ID 数组表示。

多旅行商分析也称为物流配送,是指在网络数据集中,给定 M 个配送中心点和 N 个配送目的地(M,N 为大于零的整数),查找经济有效的配送路径,并给出相应的行走路线。

物流配送功能就是解决如何合理分配配送次序和送货路线,使配送总花费达到最小或每个配送中心的花费达到最小。

多旅行商分析的结果将给出每个配送中心所负责的配送目的地,和每个配送中心向其负责的配送目的地配送货物时,经过各个配送目的地的顺序和相应的行走路线。 从而使各个配送中心 的配送花费相对平均,或者使所有的配送中心的总花费最小。

例子:现在有50个报刊零售地(配送目的地),和4个报刊供应地(配送中心), 现寻求这4个供应地向报刊零售地发送报纸的最优路线, 属物流配送问题。

public FindMTSPPath ( string networkDatasetName, int nodeIDs, int centerIDs, bool hasLeastTotalCost, TransportationAnalystParameter parameter ) : List>
networkDatasetName string 用于唯一标识一个网络数据集的字符串,必设参数。
nodeIDs int 配送目标结点 ID 数组,必设参数。
centerIDs int 配送中心结点 ID 数组,必设参数。
hasLeastTotalCost bool /// 配送模式是否为总花费最小方案。可选参数,默认值为false, 表示采用局部最优方案;设置为true 表示采用总花费最小方案。 /// 总花费最小方案中,可能会出现某些配送中心点配送的花费较多,而其他的配送中心点的花费较少的情况。 局部最优方案中,会控制每个配送中心点的花费,使各个中心点花费相对平均,此时总花费不一定最小。 ///
parameter TransportationAnalystParameter 交通网络分析通用参数。可选参数,默认返回EdgeIDs、NodeIDs、Routes信息。
return List>

FindPath() public method

最佳路径分析,根据坐标点进行分析。

最佳路径分析解决的问题是,在网络数据集中,给定 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。

public FindPath ( string networkDatasetName, Point2D points, bool hasLeastEdgeCount, TransportationAnalystParameter parameter ) : List
networkDatasetName string 用于唯一标识一个网络数据集的字符串,必设参数。
points Point2D 需要经过的坐标点数组,必设参数。
hasLeastEdgeCount bool 是否按弧段数最少的模式查询。可选参数,默认为false, 代表不按照弧段最少进行查询。
parameter TransportationAnalystParameter 交通网络分析通用参数。可选参数,默认返回EdgeIDs、NodeIDs、Routes信息。
return List

FindPath() public method

最佳路径分析,根据网络结点的 ID 进行分析。

最佳路径分析解决的问题是,在网络数据集中,给定 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。

public FindPath ( string networkDatasetName, int nodeIDs, bool hasLeastEdgeCount, TransportationAnalystParameter parameter ) : List
networkDatasetName string 用于唯一标识一个网络数据集的字符串,必设参数。
nodeIDs int 需要经过的网络结点 ID 数组,必设参数,ID必须大于0。
hasLeastEdgeCount bool 是否按弧段数最少的模式查询。可选参数,默认为false, 代表不按照弧段最少进行查询。
parameter TransportationAnalystParameter 交通网络分析通用参数。可选参数,默认返回EdgeIDs、NodeIDs、Routes信息。
return List

FindPath() public method

使用异步方式进行最佳路径分析,根据坐标点进行分析。

最佳路径分析解决的问题是,在网络数据集中,给定 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。

public FindPath ( string networkDatasetName, Point2D points, bool hasLeastEdgeCount, TransportationAnalystParameter parameter, EventHandler completed, EventHandler failed ) : void
networkDatasetName string 用于唯一标识一个网络数据集的字符串,必设参数。
points Point2D 需要经过的坐标点数组,必设参数。
hasLeastEdgeCount bool 是否按弧段数最少的模式查询。可选参数,默认为false, 代表不按照弧段最少进行查询。
parameter TransportationAnalystParameter 交通网络分析通用参数。可选参数,默认返回EdgeIDs、NodeIDs、Routes信息。
completed EventHandler 完成后时执行的方法。
failed EventHandler 失败时执行的方法。
return void

FindPath() public method

使用异步方式进行最佳路径分析,根据网络结点的 ID 进行分析。此方法不会阻止调用线程。

最佳路径分析解决的问题是,在网络数据集中,给定 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。

public FindPath ( string networkDatasetName, int nodeIDs, bool hasLeastEdgeCount, TransportationAnalystParameter parameter, EventHandler completed, EventHandler failed ) : void
networkDatasetName string 用于唯一标识一个网络数据集的字符串,必设参数。
nodeIDs int 需要经过的网络结点 ID 数组,必设参数,ID必须大于0。
hasLeastEdgeCount bool 是否按弧段数最少的模式查询。可选参数,默认为false, 代表不按照弧段最少进行查询。
parameter TransportationAnalystParameter 交通网络分析通用参数。可选参数,默认返回EdgeIDs、NodeIDs、Routes信息。
completed EventHandler 完成后时执行的方法。
failed EventHandler 失败时执行的方法。
return void

FindServiceArea() public method

根据坐标点进行服务区分析。
参数 networkDatasetName、centerPoints 为空时抛出异常。 当参数 centerPoints 的长度不等于 weights 的长度时抛出异常。 服务端处理错误时抛出异常。
public FindServiceArea ( string networkDatasetName, Point2D centerPoints, double weights, bool isFromCenter, bool isCenterMutuallyExclusive, TransportationAnalystParameter parameter ) : List
networkDatasetName string 用于唯一标识一个网络数据集的字符串,必设参数。
centerPoints Point2D 服务中心坐标点数组,必设参数。
weights double 服务半径集合,必设参数。该集合的大小跟服务中心个数一致, 标识了在对每个服务中心进行服务区分析时,所用的范围值。例如设置 weights[0] 为 300.0,parameter.WeightFieldName 为 Length ,可表明在第一个服务中心的结果服务区内, 任意点出发到该服务中心的耗费都不应超过300米。
isFromCenter bool /// 是否从中心点开始分析,false 表示不从中心点开始分析。 /// 从中心点开始分析和不从中心点开始分析,体现了服务中心和需要该服务的需求地的关系模式。 从中心点开始分析,是一个服务中心向服务需求地提供服务;而不从中心点开始分析, 是一个服务需求地主动到服务中心获得服务。 /// /// 例如:某个奶站向各个居民点送牛奶,如果要对这个奶站进行服务区分析,看这个奶站在允许的条件下所能服务的范围,那么在实际分析过程中就应当使用从中心点开始分析的模式;另一个例子,如果想分析一个区域的某个学校在允许的条件下所能服务的区域时,在现实中,都是学生主动来到学校学习,接受学校提供的服务,那么在实际分析过程中就应当使用不从中心点开始分析的模式。 /// ///
isCenterMutuallyExclusive bool 是否对分析结果服务区进行互斥处理,false 表示不进行互斥处理, 若设置为 true, 表示如果分析出的服务区有重叠的部分,则进行互斥处理。如图所示左图未进行互斥处理,右图进行了互斥处理。 /// /// /// ///
parameter TransportationAnalystParameter 交通网络分析通用参数。可选参数,默认返回EdgeIDs、NodeIDs、Routes信息。
return List

FindServiceArea() public method

根据网络节点ID进行服务区分析。
参数 networkDatasetName、centerIDs 为空时抛出异常。 当参数 centerIDs 的长度不等于 weights 的长度时抛出异常。 服务端处理错误时抛出异常。
public FindServiceArea ( string networkDatasetName, int centerIDs, double weights, bool isFromCenter, bool isCenterMutuallyExclusive, TransportationAnalystParameter parameter ) : List
networkDatasetName string 用于唯一标识一个网络数据集的字符串,必设参数。
centerIDs int 服务中心结点 ID 数组,必设参数。
weights double 服务半径集合,必设参数。该集合的大小跟服务中心个数一致, 标识了在对每个服务中心进行服务区分析时,所用的范围值。例如设置 weights[0] 为 300.0,parameter.WeightFieldName 为 Length ,可表明在第一个服务中心的结果服务区内, 任意点出发到该服务中心的耗费都不应超过300米。
isFromCenter bool /// 是否从中心点开始分析,false 表示不从中心点开始分析。 /// 从中心点开始分析和不从中心点开始分析,体现了服务中心和需要该服务的需求地的关系模式。 从中心点开始分析,是一个服务中心向服务需求地提供服务;而不从中心点开始分析, 是一个服务需求地主动到服务中心获得服务。 /// /// 例如:某个奶站向各个居民点送牛奶,如果要对这个奶站进行服务区分析,看这个奶站在允许的条件下所能服务的范围,那么在实际分析过程中就应当使用从中心点开始分析的模式;另一个例子,如果想分析一个区域的某个学校在允许的条件下所能服务的区域时,在现实中,都是学生主动来到学校学习,接受学校提供的服务,那么在实际分析过程中就应当使用不从中心点开始分析的模式。 /// ///
isCenterMutuallyExclusive bool 是否对分析结果服务区进行互斥处理,false 表示不进行互斥处理, 若设置为 true, 表示如果分析出的服务区有重叠的部分,则进行互斥处理。如图所示左图未进行互斥处理,右图进行了互斥处理。 /// /// /// ///
parameter TransportationAnalystParameter 交通网络分析通用参数。可选参数,默认返回EdgeIDs、NodeIDs、Routes信息。
return List

FindTSPPath() public method

旅行商分析,根据坐标点进行分析。

旅行商分析是查找经过指定一系列点的路径,旅行商分析是无序的路径分析。旅行商可以自己决定访问结点的顺序,目标是旅行路线阻抗总和最小(或接近最小)。

在旅行商分析中,如果指定了终止点,则旅行商必须最后一个访问终止点,而其他经过点的访问次序由旅行商自己决定。

在旅行商分析中,需要途经的点是在 pointsToVisit 参数中指定的,其中点序列中的第一个点为旅行商的出发点。

最佳路径分析与旅行商分析的异同:

相同点:都是在网络中寻找遍历所有经过点的花费最少的路径。 不同点:在遍历所有经过点的过程,对访问经过点的顺序处理有所不同。 最佳路径分析必须按照指定的顺序访问所有经过点,而旅行商分析需要确定最优次序来访问所有点, 而并不一定按照指定的经过点的次序。有关最佳路径分析的详细内容,请参见FindPath(string, SuperMap.Connector.Utility.Point2D[],bool,SuperMap.Connector.Utility.TransportationAnalystParameter)方法。
public FindTSPPath ( string networkDatasetName, Point2D pointsToVisit, bool endNodeAssigned, TransportationAnalystParameter parameter ) : List
networkDatasetName string 用于唯一标识一个网络数据集的字符串,必设参数。
pointsToVisit Point2D 需要途经的坐标点数组,数组中的第一个点为旅行商的出发点,必设参数。
endNodeAssigned bool 是否指定终止点。可选参数,默认为False,如果设置为true ,则表示指定终止点,则旅行商必须最后一个访问终止点,即途经的最后一个点。
parameter TransportationAnalystParameter 交通网络分析通用参数。可选参数,默认返回EdgeIDs、NodeIDs、Routes信息。
return List

FindTSPPath() public method

旅行商分析,根据网络结点的 ID 进行分析。

旅行商分析是查找经过指定一系列点的路径,旅行商分析是无序的路径分析。旅行商可以自己决定访问结点的顺序,目标是旅行路线阻抗总和最小(或接近最小)。

在旅行商分析中,如果指定了终止点,则旅行商必须最后一个访问终止点,而其他经过点的访问次序由旅行商自己决定。

在旅行商分析中,需要途经的点是在 nodeIDsToVisit 参数中指定的,其中点序列中的第一个点为旅行商的出发点。

最佳路径分析与旅行商分析的异同:

相同点:都是在网络中寻找遍历所有经过点的花费最少的路径。 不同点:在遍历所有经过点的过程,对访问经过点的顺序处理有所不同。 最佳路径分析必须按照指定的顺序访问所有经过点,而旅行商分析需要确定最优次序来访问所有点, 而并不一定按照指定的经过点的次序。有关最佳路径分析的详细内容,请参见最佳路径分析FindPath(string,int[],bool,SuperMap.Connector.Utility.TransportationAnalystParameter)方法。
public FindTSPPath ( string networkDatasetName, int nodeIDsToVisit, bool endNodeAssigned, TransportationAnalystParameter parameter ) : List
networkDatasetName string 用于唯一标识一个网络数据集的字符串,必设参数。
nodeIDsToVisit int 需要途经的网络结点的 ID 数组,数组中的第一个点为旅行商的出发点,必设参数。
endNodeAssigned bool 是否指定终止点。可选参数,默认为False,如果设置为true ,则表示指定终止点,则旅行商必须最后一个访问终止点,即途经的最后一个点。
parameter TransportationAnalystParameter 交通网络分析通用参数。可选参数,默认返回EdgeIDs、NodeIDs、Routes信息。
return List

GetNetworkDatasetNames() public method

获取交通网络分析服务中使用的所有网络数据集的名称。
服务端处理错误时抛出异常。
public GetNetworkDatasetNames ( ) : List
return List

GetNetworkDatasetPrj() public method

获取指定网络数据集投影信息。
参数 networkDatasetName 为空时抛出异常。 服务端处理错误时抛出异常。
public GetNetworkDatasetPrj ( string networkDatasetName ) : PrjCoordSys
networkDatasetName string 用于唯一标识一个网络数据集的字符串,必设参数。的返回列表的元素之一。
return PrjCoordSys

GetTurnWeightNames() public method

获取指定网络数据集的转向权值字段名称列表。
参数 networkDatasetName 为空时抛出异常。 服务端处理错误时抛出异常。
public GetTurnWeightNames ( string networkDatasetName ) : List
networkDatasetName string 用于唯一标识一个网络数据集的字符串,必设参数。的返回列表的元素之一。
return List

GetWeightNames() public method

获取指定网络数据集的权值字段名称列表。
参数 networkDatasetName 为空时抛出异常。 服务端处理错误时抛出异常。
public GetWeightNames ( string networkDatasetName ) : List
networkDatasetName string 用于唯一标识一个网络数据集的字符串,必设参数。的返回列表的元素之一。
return List

NetworkAnalyst() public method

构造函数。
参数 serviceUrl 为空时抛出异常。
public NetworkAnalyst ( string serviceUrl ) : System
serviceUrl string SuperMap iServer 网络分析服务组件的URL地址(例如:http://localhost:8090/iserver/services/transportationanalyst-sample/rest")。
return System

ReloadModel() public method

重新加载网络模型。
参数 networkDatasetName 为空时抛出异常。 服务端处理错误时抛出异常。
public ReloadModel ( string networkDatasetName ) : bool
networkDatasetName string 用于唯一标识一个网络数据集的字符串,必设参数。 的返回列表的元素之一。
return bool

UpdateEdgeWeight() public method

更新弧段的权值。
参数 networkDatasetName 为空时抛出异常。 服务端处理错误时抛出异常。
public UpdateEdgeWeight ( string networkDatasetName, int edgeID, int fromNodeID, int toNodeID, string weightField, double weight ) : bool
networkDatasetName string 用于唯一标识一个网络数据集的字符串,必设参数。
edgeID int 目标弧段 ID。
fromNodeID int 目标弧段的起始结点 ID。
toNodeID int 目标弧段的终止结点 ID。
weightField string 目标弧段对应的权值信息的名称,fromNodeID 和 toNodeID 参数决定了更新其中的正向字段还是反向字段。
weight double 新的权值。
return bool

UpdateTurnNodeWeight() public method

更新转向结点的权值。
参数 networkDatasetName为空时抛出异常。 服务端处理错误时抛出异常。
public UpdateTurnNodeWeight ( string networkDatasetName, int nodeID, int fromEdgeID, int toEdgeID, string turnWeightField, double weight ) : bool
networkDatasetName string 用于唯一标识一个网络数据集的字符串,必设参数。
nodeID int 目标转向结点 ID。
fromEdgeID int 目标转向结点的起始弧段 ID。
toEdgeID int 目标转向结点的终止弧段 ID。
turnWeightField string 转向权值字段的名称。
weight double 新的权值。
return bool