类 TransportationAnalystSetting
- java.lang.Object
-
- com.supermap.analyst.networkanalyst.TransportationAnalystSetting
-
public class TransportationAnalystSetting extends java.lang.Object
交通网络分析环境设置类。该类用于提供交通网络分析时所需要的所有参数信息。交通网络分析环境设置类的各个参数的设置直接影响分析的结果。
在利用交通网络分析类(
TransportationAnalyst
类)进行各种交通网络分析时,都要首先设置交通网络分析的环境,而交通网络分析环境的设置就是通过TransportationAnalyst
类对象的setAnalystSetting()
方法来完成的。交通网络分析环境中的设置会直接影响到分析的结果,交通网络分析包括路径分析,旅行商分析,服务区分析和最近设施查找。网络数据集不同于一般线数据集的是,还包含了一个网络结点的子数据集,因此网络数据集拥有两个属性表,一个是记录弧段信息的属性表,一个是记录结点信息的属性表。在网络分析环境中,可以设置:
- 进行交通网络分析的数据集(NetworkDataset);
- 网络中唯一标识结点的字段(NodeIDField),该字段来源于网络结点属性表;
- 唯一标识弧段的字段(EdgeIDField),该字段来源于弧段属性表;
- 记录弧段起、终结点 ID 的字段(FNodeIDField 和 TNodeIDField),该字段来源于弧段属性表,对应于网络结点属性表中的结点 ID;
- 记录要经过某一弧段需要多少耗费的权值字段(WeightFieldInfos),来源于弧段属性表;
- 结点到弧段的距离容限(Tolerance);
- 表示转向表的一系列属性,如转向表数据集(TurnDataset)、转向结点 ID 的字段(TurnNodeIDField),转向起始弧段 ID 的字段(TurnFEdgeIDField)、转向终止弧段 ID 的字段(TurnTEdgeIDField)以及转向权值字段(TurnWeightFields)。有关转向表的介绍请参见SuperMap iDesktop帮助文档的网络分析相关介绍。
- 网络中障碍边和障碍点的 ID 集合(BarrierEdges、BarrierNodes);
- 存储结点名称和弧段名称的字段的字段名(NodeNameField、EdgeNameField)。
- Example:
- 以下代码示例通过网络数据集查找最佳路径。下面函数中操作的网络数据集为安装目录\SampleData\changchun\下的 changchun.udb 数据源中的名为 RoadNet 的网络数据集。
public void FindPathExample(DatasetVector networkDataset) { //构建一个网络分析环境设置实例并进行相应设置 TransportationAnalystSetting transportationAnalystSetting = new TransportationAnalystSetting(); transportationAnalystSetting.setNetworkDataset ( dataset); transportationAnalystSetting.setEdgeIDField ( "SmID"); transportationAnalystSetting.setNodeIDField ( "SmNodeID"); transportationAnalystSetting.setFNodeIDField ("SmFNode"); transportationAnalystSetting.setTNodeIDField ( "SmTNode"); WeightFieldInfo weightInfo = new WeightFieldInfo(); weightInfo.setFTWeightField ( "smLength"); weightInfo.setTFWeightField ( "smLength"); transportationAnalystSetting.getWeightFieldInfos().add(weightInfo); //创建交通网络分析对象并进行相应设置 TransportationAnalyst transportationAnalyst = new TransportationAnalyst(); transportationAnalyst.setAnalystSetting (transportationAnalystSetting); //加载网络模型 transportationAnalyst.load(); //构建交通网络分析参数对象并进行相应设置 TransportationAnalystParameter parameter = new TransportationAnalystParameter(); parameter.setNodes ( new int[] { 2, 50 }); parameter.setRoutesReturn ( true); //进行网络分析,返回最佳路径 TransportationAnalystResult result = transportationAnalyst.findPath(parameter, true); }
-
-
构造器概要
构造器 构造器和说明 TransportationAnalystSetting()
构造一个新的交通网络分析环境设置对象。TransportationAnalystSetting(TransportationAnalystSetting networkAnalystSetting)
根据给定的交通网络分析环境设置对象构造一个与其完全相同的新对象。
-
方法概要
所有方法 实例方法 具体方法 限定符和类型 方法和说明 int[]
getBarrierEdges()
返回障碍弧段的 ID 列表。int[]
getBarrierNodes()
返回障碍结点的 ID 列表。java.lang.String
getEdgeFilter()
返回交通网络分析中弧段过滤表达式。java.lang.String
getEdgeIDField()
返回网络数据集中标志弧段 ID 的字段。java.lang.String
getEdgeNameField()
返回存储弧段名称的字段。java.lang.String
getFNodeIDField()
返回网络数据集中标志弧段起始结点 ID 的字段。java.lang.String[]
getFTSingleWayRuleValues()
返回用于表示正向单行线的字符串的数组。DatasetVector
getNetworkDataset()
返回用于分析的网络数据集。java.lang.String
getNodeIDField()
返回网络数据集中标识结点 ID 的字段。java.lang.String
getNodeNameField()
返回存储结点名称的字段的字段名。java.lang.String[]
getProhibitedWayRuleValues()
返回用于表示禁行线的字符串的数组。java.lang.String
getRuleField()
返回网络数据集中表示网络弧段的交通规则的字段。java.lang.String[]
getTFSingleWayRuleValues()
返回用于表示逆向单行线的字符串的数组。java.lang.String
getTNodeIDField()
返回网络数据集中标志弧段终止结点 ID 的字段。double
getTolerance()
返回点到弧段的距离容限。DatasetVector
getTurnDataset()
返回转向表数据集。java.lang.String
getTurnFEdgeIDField()
返回转向起始弧段 ID 的字段。java.lang.String
getTurnNodeIDField()
返回转向结点 ID 的字段。java.lang.String
getTurnTEdgeIDField()
返回转向终止弧段 ID 的字段。java.lang.String[]
getTurnWeightFields()
返回转向权值字段集合。java.lang.String[]
getTwoWayRuleValues()
返回用于表示双向通行线的字符串的数组。WeightFieldInfos
getWeightFieldInfos()
返回权值字段信息集合对象。void
setBarrierEdges(int[] value)
设置障碍弧段的 ID 列表。void
setBarrierNodes(int[] value)
设置障碍结点的 ID 列表。void
setEdgeFilter(java.lang.String value)
设置交通网络分析中弧段过滤表达式。void
setEdgeIDField(java.lang.String value)
设置网络数据集中标志弧段 ID 的字段。void
setEdgeNameField(java.lang.String value)
设置存储弧段名称的字段。void
setFNodeIDField(java.lang.String value)
设置网络数据集中标志弧段起始结点 ID 的字段。void
setFTSingleWayRuleValues(java.lang.String[] value)
设置用于表示正向单行线的字符串的数组。void
setNetworkDataset(DatasetVector value)
设置用于分析的网络数据集。void
setNodeIDField(java.lang.String value)
设置网络数据集中标识结点 ID 的字段。void
setNodeNameField(java.lang.String value)
设置存储结点名称的字段的字段名。void
setProhibitedWayRuleValues(java.lang.String[] value)
设置用于表示禁行线的字符串的数组。void
setRuleField(java.lang.String value)
设置网络数据集中表示网络弧段的交通规则的字段。void
setTFSingleWayRuleValues(java.lang.String[] value)
设置用于表示逆向单行线的字符串的数组。void
setTNodeIDField(java.lang.String value)
设置网络数据集中标志弧段终止结点 ID 的字段。void
setTolerance(double value)
设置点到弧段的距离容限。void
setTurnDataset(DatasetVector value)
设置转向表数据集。void
setTurnFEdgeIDField(java.lang.String value)
设置转向起始弧段 ID 的字段。void
setTurnNodeIDField(java.lang.String value)
设置转向结点 ID 的字段。void
setTurnTEdgeIDField(java.lang.String value)
设置转向终止弧段 ID 的字段。void
setTurnWeightFields(java.lang.String[] value)
设置转向权值字段集合。void
setTwoWayRuleValues(java.lang.String[] value)
设置用于表示双向通行线的字符串的数组。void
setWeightFieldInfos(WeightFieldInfos value)
设置权值字段信息集合对象。
-
-
-
构造器详细资料
-
TransportationAnalystSetting
public TransportationAnalystSetting()
构造一个新的交通网络分析环境设置对象。
-
TransportationAnalystSetting
public TransportationAnalystSetting(TransportationAnalystSetting networkAnalystSetting)
根据给定的交通网络分析环境设置对象构造一个与其完全相同的新对象。- 参数:
networkAnalystSetting
- 给定的交通网络分析环境设置对象。
-
-
方法详细资料
-
getNetworkDataset
public DatasetVector getNetworkDataset()
返回用于分析的网络数据集。- 返回:
- 用于分析的网络数据集。
- Default:
- 默认值为 null。
-
setNetworkDataset
public void setNetworkDataset(DatasetVector value)
设置用于分析的网络数据集。必设。- 参数:
value
- 用于分析的网络数据集。
-
getNodeIDField
public java.lang.String getNodeIDField()
返回网络数据集中标识结点 ID 的字段。- 返回:
- 网络数据集中标识结点 ID 的字段。
- Default:
- 默认值为 "SmNodeID"。
-
setNodeIDField
public void setNodeIDField(java.lang.String value)
设置网络数据集中标识结点 ID 的字段。必须正确设定标识结点 ID 的字段。仅支持 16 位整型、32 位整型字段。- 参数:
value
- 网络数据集中标识结点 ID 的字段。
-
getEdgeIDField
public java.lang.String getEdgeIDField()
返回网络数据集中标志弧段 ID 的字段。- 返回:
- 网络数据集中标识弧段 ID 的字段。
- Default:
- 默认值为 "SmEdgeID"。
-
setEdgeIDField
public void setEdgeIDField(java.lang.String value)
设置网络数据集中标志弧段 ID 的字段。必须正确设定标识弧段 ID 的字段。仅支持 16 位整型、32 位整型字段。- 参数:
value
- 网络数据集中标志弧段 ID 的字段。
-
getFNodeIDField
public java.lang.String getFNodeIDField()
返回网络数据集中标志弧段起始结点 ID 的字段。- 返回:
- 网络数据集中标志弧段起始结点 ID 的字段。
- Default:
- 默认值为 "SmFNode"。
-
setFNodeIDField
public void setFNodeIDField(java.lang.String value)
设置网络数据集中标志弧段起始结点 ID 的字段。必须正确设定标识弧段起始结点 ID 的字段。仅支持 16 位整型、32 位整型字段。- 参数:
value
- 网络数据集中标志弧段起始结点 ID 的字段。
-
getTNodeIDField
public java.lang.String getTNodeIDField()
返回网络数据集中标志弧段终止结点 ID 的字段。- 返回:
- 网络数据集中标志弧段终止结点 ID 的字段。
- Default:
- 默认值为 "SmTNode"。
-
setTNodeIDField
public void setTNodeIDField(java.lang.String value)
设置网络数据集中标志弧段终止结点 ID 的字段。必须正确设定标识弧段终止结点 ID 的字段。仅支持 16 位整型、32 位整型字段。- 参数:
value
- 网络数据集中标志弧段终止结点 ID 的字段。
-
getWeightFieldInfos
public WeightFieldInfos getWeightFieldInfos()
返回权值字段信息集合对象。WeightFieldInfos
是WeightFieldInfo
的集合,在WeightFieldInfo
中可以设置正向和反向权值字段,字段值代表在网络分析中的耗费。- 返回:
- 权值字段信息集合对象。
- Default:
- 默认值为包含一个元素的 WeightFieldInfos 对象。该元素的名称为“Length”,正向阻力字段和反向阻力字段都为“SmLength”。
-
setWeightFieldInfos
public void setWeightFieldInfos(WeightFieldInfos value)
设置权值字段信息集合对象。WeightFieldInfos
是WeightFieldInfo
的集合,在WeightFieldInfo
中可以设置正向和反向权值字段,字段值代表在网络分析中的耗费。- 参数:
value
- 权值字段信息集合对象。
-
getTolerance
public double getTolerance()
返回点到弧段的距离容限。单位与setNetworkDataset
方法指定的网络数据集的单位相同。有关点到弧段的距离容限,请参见
setTolerance
方法的介绍。- 返回:
- 点到弧段的距离容限。
- Default:
- 默认值为 0。
-
setTolerance
public void setTolerance(double value)
设置点到弧段的距离容限。单位与setNetworkDataset
方法指定的网络数据集的单位相同。注意,当使用坐标点模式(setPoints
,即指定的分析点是坐标点而不是结点 ID),或指定了障碍坐标点(setBarrierPoints
)进行分析时,需要设置合适的距离容限值,以避免选取的分析点或障碍点不能归结到网络上而导致分析结果不正确。原则上,网络分析中可以指定网络中任意的点作为路径分析中的一个站点或障碍点,但应该在网络附近。如果这个点不在网络上(既不在弧段上也不在结点上),网络分析会根据该距离容限把该点归结到网络上。
如下图所示,桔色点代表网络结点,蓝色代表弧段,灰色点为站点,红色线段是站点到弧段 AB 的距离,如果该距离在设定的距离容限内,则把站点归结到弧段 AB 上。
设置合适的距离容限值才能保证网络分析的正常进行,距离容限值的计算方法:
- 计算出网络数据集中包含所有对象的最小外接矩形;
- 计算出该矩形对象的高度及宽度;
- 取两者中的较小值除以40,得出较合适的距离容限值。
- 参数:
value
- 点到弧段的距离容限。
-
getBarrierNodes
public int[] getBarrierNodes()
返回障碍结点的 ID 列表。同障碍边意义相同,但其所设置的障碍是网络结点。障碍点通常可作为网络中的目的地,如运货或旅行到达的终点。
- 返回:
- 障碍结点的 ID 列表。
- Default:
- 默认值为 null。
-
setBarrierNodes
public void setBarrierNodes(int[] value)
设置障碍结点的 ID 列表。可选。同障碍边意义相同,但其所设置的障碍是网络结点。障碍点通常可作为网络中的目的地,如运货或旅行到达的终点。
- 参数:
value
- 障碍结点的 ID 列表。
-
getBarrierEdges
public int[] getBarrierEdges()
返回障碍弧段的 ID 列表。一条边一旦被设置为障碍,也就是说这条边在分析过程中是禁行的。障碍边可以在分析过程中动态设置,不影响效率。
- 返回:
- 障碍弧段的 ID 列表。
- Default:
- 默认值为 null。
-
setBarrierEdges
public void setBarrierEdges(int[] value)
设置障碍弧段的 ID 列表。可选。一条边一旦被设置为障碍,也就是说这条边在分析过程中是禁行的。障碍边可以在分析过程中动态设置,不影响效率。
- 参数:
value
- 障碍弧段的 ID 列表。
-
getTurnDataset
public DatasetVector getTurnDataset()
返回转向表数据集。请参见
setTurnDataset
方法的介绍。- 返回:
- 转向表数据集。
- Default:
- 默认值为 null。
-
setTurnDataset
public void setTurnDataset(DatasetVector value)
设置转向表数据集。可选。转向表用于存储完成转弯需要的花费。关于转向表的详细介绍,请参见SuperMap iDesktop帮助文档的网络分析相关介绍。
- 参数:
value
- 转向表数据集。
-
getTurnNodeIDField
public java.lang.String getTurnNodeIDField()
返回转向结点 ID 的字段。- 返回:
- 转向结点 ID 的字段。
- Default:
- 默认值为一个空字符串。
-
setTurnNodeIDField
public void setTurnNodeIDField(java.lang.String value)
设置转向结点 ID 的字段。仅支持 16 位整型、32 位整型字段。可选。- 参数:
value
- 转向结点 ID 的字段。
-
getTurnFEdgeIDField
public java.lang.String getTurnFEdgeIDField()
返回转向起始弧段 ID 的字段。- 返回:
- 转向起始弧段 ID 的字段。
- Default:
- 默认值为一个空字符串。
-
setTurnFEdgeIDField
public void setTurnFEdgeIDField(java.lang.String value)
设置转向起始弧段 ID 的字段。仅支持 16 位整型、32 位整型字段。可选。- 参数:
value
- 转向起始弧段 ID 的字段。
-
getTurnTEdgeIDField
public java.lang.String getTurnTEdgeIDField()
返回转向终止弧段 ID 的字段。- 返回:
- 转向终止弧段 ID 的字段。
- Default:
- 默认值为一个空字符串。
-
setTurnTEdgeIDField
public void setTurnTEdgeIDField(java.lang.String value)
设置转向终止弧段 ID 的字段。仅支持 16 位整型、32 位整型字段。可选。- 参数:
value
- 转向终止弧段 ID 的字段。
-
getTurnWeightFields
public java.lang.String[] getTurnWeightFields()
返回转向权值字段集合。请参见
setTurnWeightFields
方法的介绍。- 返回:
- 转向权值字段集合。
- Default:
- 默认值为 null。
-
setTurnWeightFields
public void setTurnWeightFields(java.lang.String[] value)
设置转向权值字段集合。可选。转弯权值即转弯耗费,是指从一个弧段经过中间结点抵达另外一个邻接弧段所需的花费。
转向权值字段是转向表中表示转弯耗费的字段。通过该属性可以指定多个转向权值字段,在分析前设置有关参数时,可以选择其中的一个字段作为分析时的转向权值信息。
关于转向表的详细介绍请参见SuperMap iDesktop帮助文档的网络分析相关介绍。
- 参数:
value
- 转向权值字段集合。
-
getNodeNameField
public java.lang.String getNodeNameField()
返回存储结点名称的字段的字段名。- 返回:
- 存储结点名称的字段的字段名。
- Default:
- 默认值为一个空字符串。
-
setNodeNameField
public void setNodeNameField(java.lang.String value)
设置存储结点名称的字段的字段名。可选。- 参数:
value
- 存储结点名称的字段的字段名。
-
getEdgeNameField
public java.lang.String getEdgeNameField()
返回存储弧段名称的字段。- 返回:
- 存储弧段名称的字段。
- Default:
- 默认值为一个空字符串。
-
setEdgeNameField
public void setEdgeNameField(java.lang.String value)
设置存储弧段名称的字段。可选。注意,如果不设置,即使将isPathGuidesReturn
方法设置为 true,分析结果中也不会返回行驶导引。- 参数:
value
- 存储弧段名称的字段。
-
getRuleField
public java.lang.String getRuleField()
返回网络数据集中表示网络弧段的交通规则的字段。网络数据集中代表交通规则的字段,存储了该弧段对应的交通规则,如该弧段为正向单行线,或逆向单行线、禁行线、双向通行线等。该字段的值与交通规则的对应关系,是通过
setFTSingleWayRuleValues()
、setTFSingleWayRuleValues()
、setProhibitedWayRuleValues()
、setTwoWayRuleValues()
等方法来设置的。例如,通过
setFTSingleWayRuleValues()
方法可以设置代表正向单行线的值,并且该方法允许设置多个值同时代表正向单行线,那么当交通规则字段的值为指定的这些值时,对应的弧段都将代表正向单行线。- 返回:
- 网络数据集中表示网络弧段的交通规则的字段。
- Default:
- 默认值为一个空的字符串。
-
setRuleField
public void setRuleField(java.lang.String value)
设置网络数据集中表示网络弧段的交通规则的字段。要求字段类型为文本型。可选。网络数据集中代表交通规则的字段中的值具体对应了哪个交通规则,是可以根据需要设定,这类设定主要在
TransportationAnalystSetting
类的setFTSingleWayRuleValues()
、setTFSingleWayRuleValues()
、setProhibitedWayRuleValues()
、setTwoWayRuleValues()
方法中实现的,以TransportationAnalystSetting
类的setFTSingleWayRuleValues()
方法为例,该方法用于设置代表正向单行线的数值,setFTSingleWayRuleValues(String[]) 方法中设置的是一个字符串数组,在该方法中可以设置多个值同时代表正向单行线,那么交通规则字段中的值如果为其中的任何一个字符串的值,都将代表正向单行线。即相应的网络数据集中的网络弧段为正向单行线。其他的代表交通规则(如:逆向单行线、禁行线、双向通行线)的字段值也是在相应的setTFSingleWayRuleValues()
、setProhibitedWayRuleValues()
、setTwoWayRuleValues()
方法中设置的,原理同正向单行线的设置。- 参数:
value
- 网络数据集中表示网络弧段的交通规则的字段。
-
getFTSingleWayRuleValues
public java.lang.String[] getFTSingleWayRuleValues()
返回用于表示正向单行线的字符串的数组。关于正向单行线字符串数组,请参阅
setFTSingleWayRuleValues
方法。- 返回:
- 用于表示正向单行线的字符串的数组。
- Default:
- 默认值为空。
-
setFTSingleWayRuleValues
public void setFTSingleWayRuleValues(java.lang.String[] value)
设置用于表示正向单行线的字符串的数组。可选。当
setRuleField
方法设置的交通规则字段的值为该方法所指定的字符串数组中任意一个时,表示对应的网络弧段为正向单行线。更多介绍请参见setRuleField
方法。- 参数:
value
- 用于表示正向单行线的字符串的数组。
-
getTFSingleWayRuleValues
public java.lang.String[] getTFSingleWayRuleValues()
返回用于表示逆向单行线的字符串的数组。关于逆向单行线字符串数组,请参阅
setTFSingleWayRuleValues
方法。- 返回:
- 用于表示逆向单行线的字符串的数组。
- Default:
- 默认值为空。
-
setTFSingleWayRuleValues
public void setTFSingleWayRuleValues(java.lang.String[] value)
设置用于表示逆向单行线的字符串的数组。可选。当
setRuleField
方法设置的交通规则字段的值为该方法所指定的字符串数组中任意一个时,表示对应的网络弧段为逆向单行线。更多介绍请参见setRuleField
方法。- 参数:
value
- 用于表示逆向单行线的字符串的数组。
-
getProhibitedWayRuleValues
public java.lang.String[] getProhibitedWayRuleValues()
返回用于表示禁行线的字符串的数组。关于禁行线字符串数组,请参阅
setTFSingleWayRuleValues
方法。- 返回:
- 用于表示禁行线的字符串的数组。
- Default:
- 默认值为空。
-
setProhibitedWayRuleValues
public void setProhibitedWayRuleValues(java.lang.String[] value)
设置用于表示禁行线的字符串的数组。可选。当
setRuleField
方法设置的交通规则字段的值为该方法所指定的字符串数组中任意一个时,对应的网络弧段即为禁行线。更多介绍请参见setRuleField
方法。- 参数:
value
- 用于表示禁行线的字符串的数组。
-
getTwoWayRuleValues
public java.lang.String[] getTwoWayRuleValues()
返回用于表示双向通行线的字符串的数组。关于双向通行线字符串数组,请参阅
setTFSingleWayRuleValues
方法。- 返回:
- 用于表示双向通行线的字符串的数组。
- Default:
- 默认值为空。
-
setTwoWayRuleValues
public void setTwoWayRuleValues(java.lang.String[] value)
设置用于表示双向通行线的字符串的数组。可选。当
setRuleField
方法设置的交通规则字段的值为该方法所指定的字符串数组中任意一个时,对应的网络弧段即为双向通行线。更多介绍请参见setRuleField
方法。- 参数:
value
- 用于表示双向通行线的字符串的数组。
-
getEdgeFilter
public java.lang.String getEdgeFilter()
返回交通网络分析中弧段过滤表达式。关于弧段过滤表达式的作用请参见
setEdgeFilter
方法。- 返回:
- 交通网络分析中弧段过滤表达式。
-
setEdgeFilter
public void setEdgeFilter(java.lang.String value)
设置交通网络分析中弧段过滤表达式。可选。网络中的弧段依据某些特性可能会被分成几种类型,当实际分析中不需要所有弧段都参与分析时,可以设置过滤表达式从而只让符合条件的弧段参与分析,并且有可能提高分析的性能。
- 参数:
value
- 交通网络分析中弧段过滤表达式。
-
-