com.supermap.analyst.networkanalyst

类 MultiTransportationAnalystSetting

  • java.lang.Object
    • com.supermap.analyst.networkanalyst.MultiTransportationAnalystSetting


  • public class MultiTransportationAnalystSetting
    extends Object

    多网络数据集分析环境设置类。该类用于提供多网络数据集分析时所需要的所有参数信息。多网络数据集分析环境设置类的各个参数的设置直接影响分析的结果。

    多网络数据集分析和传统的网络分析不同点在于,传统的网络分析需要将所有道路要素全部合并到一个网络数据集中,并且需要保证整个网络数据集的连通性。而现实实现的多网络数据集的分析可以将网络数据进行分块存储,即不必将所有道路要素全部存储到一个网络数据集中,网络数据集之间的联系使用属性进行连接。在多网络数据集分析环境中,可以设置:

    1. 进行分析的多网络数据集数组(NetworkDatasets);
    2. 网络中唯一标识结点的字段(NodeIDField),该字段来源于网络结点属性表;
    3. 唯一标识弧段的字段(EdgeIDField),该字段来源于弧段属性表;
    4. 记录弧段起、终结点 ID 的字段(FNodeIDField 和 TNodeIDField),该字段来源于弧段属性表,对应于网络结点属性表中的结点 ID;
    5. 记录要经过某一弧段需要多少耗费的权值字段(WeightFieldInfos),来源于弧段属性表;
    6. 结点到弧段的距离容限(Tolerance);
    7. 表示转向表的一系列属性,如转向表数据集(TurnDataset)、转向结点 ID 的字段(TurnNodeIDField),转向起始弧段 ID 的字段(TurnFEdgeIDField)、转向终止弧段 ID 的字段(TurnTEdgeIDField)以及转向权值字段(TurnWeightFields)。有关转向表的介绍请参见 NetworkBuilder 类的 createTurnBuilder 方法。
    8. 网络中障碍边和障碍点的 ID 集合(BarrierEdges、BarrierNodes);
    9. 存储结点名称和弧段名称的字段的字段名(NodeNameField、EdgeNameField)。
    • 构造器详细资料

      • MultiTransportationAnalystSetting

        public MultiTransportationAnalystSetting()
        构造一个新的多路网数据集分析环境设置对象。
      • MultiTransportationAnalystSetting

        public MultiTransportationAnalystSetting(MultiTransportationAnalystSetting networkAnalystSetting)
        根据给定的多路网数据集分析环境设置对象构造一个与其完全相同的新对象。
        参数:
        networkAnalystSetting - 给定的多路网数据集分析环境设置对象。
    • 方法详细资料

      • getNetworkDatasets

        public DatasetVector[] getNetworkDatasets()
        返回用于分析的多网络数据集数组。
        返回:
        用于分析的多网络数据集数组。
        默认值:
        默认值为 null。
      • setNetworkDatasets

        public void setNetworkDatasets(DatasetVector[] value)
        设置用于分析的多网络数据集数组。必设。
        参数:
        value - 用于分析的多网络数据集数组。
      • getNodeIDField

        public String getNodeIDField()
        返回网络数据集中标识结点 ID 的字段。
        返回:
        网络数据集中标识结点 ID 的字段。
        默认值:
        默认值为 "SmNodeID"。
      • setNodeIDField

        public void setNodeIDField(String value)
        设置网络数据集中标识结点 ID 的字段。必须正确设定标识结点 ID 的字段。仅支持 16 位整型、32 位整型字段。
        参数:
        value - 网络数据集中标识结点 ID 的字段。
      • getEdgeIDField

        public String getEdgeIDField()
        返回网络数据集中标志弧段 ID 的字段。
        返回:
        网络数据集中标识弧段 ID 的字段。
        默认值:
        默认值为 "SmEdgeID"。
      • setEdgeIDField

        public void setEdgeIDField(String value)
        设置网络数据集中标志弧段 ID 的字段。必须正确设定标识弧段 ID 的字段。仅支持 16 位整型、32 位整型字段。
        参数:
        value - 网络数据集中标志弧段 ID 的字段。
      • getFNodeIDField

        public String getFNodeIDField()
        返回网络数据集中标志弧段起始结点 ID 的字段。
        返回:
        网络数据集中标志弧段起始结点 ID 的字段。
        默认值:
        默认值为 "SmFNode"。
      • setFNodeIDField

        public void setFNodeIDField(String value)
        设置网络数据集中标志弧段起始结点 ID 的字段。必须正确设定标识弧段起始结点 ID 的字段。仅支持 16 位整型、32 位整型字段。
        参数:
        value - 网络数据集中标志弧段起始结点 ID 的字段。
      • getTNodeIDField

        public String getTNodeIDField()
        返回网络数据集中标志弧段终止结点 ID 的字段。
        返回:
        网络数据集中标志弧段终止结点 ID 的字段。
        默认值:
        默认值为 "SmTNode"。
      • setTNodeIDField

        public void setTNodeIDField(String value)
        设置网络数据集中标志弧段终止结点 ID 的字段。必须正确设定标识弧段终止结点 ID 的字段。仅支持 16 位整型、32 位整型字段。
        参数:
        value - 网络数据集中标志弧段终止结点 ID 的字段。
      • getWeightFieldInfos

        public WeightFieldInfos getWeightFieldInfos()
        返回权值字段信息集合对象。

        WeightFieldInfosWeightFieldInfo 的集合,在 WeightFieldInfo 中可以设置正向和反向权值字段,字段值代表在网络分析中的耗费。

        返回:
        权值字段信息集合对象。
        默认值:
        默认值为包含一个元素的 WeightFieldInfos 对象。该元素的名称为“Length”,正向阻力字段和反向阻力字段都为“SmLength”。
      • setWeightFieldInfos

        public void setWeightFieldInfos(WeightFieldInfos value)
        设置权值字段信息集合对象。

        WeightFieldInfosWeightFieldInfo 的集合,在 WeightFieldInfo 中可以设置正向和反向权值字段,字段值代表在网络分析中的耗费。

        参数:
        value - 权值字段信息集合对象。
      • getTolerance

        public double getTolerance()
        返回点到弧段的距离容限。单位与 setNetworkDatasets 方法指定的网络数据集的单位相同。

        有关点到弧段的距离容限,请参见 setTolerance 方法的介绍。

        返回:
        点到弧段的距离容限。
        默认值:
        默认值为 0。
      • setTolerance

        public void setTolerance(double value)
        设置点到弧段的距离容限。单位与 setNetworkDatasets 方法指定的网络数据集的单位相同。注意,当使用坐标点模式(setPoints,即指定的分析点是坐标点而不是结点 ID)进行分析时,需要设置合适的距离容限值,以避免选取的分析点不能归结到网络上而导致分析结果不正确。

        原则上,多网络分析中可以指定网络中任意的点作为路径分析中的一个站点,但应该在网络附近。如果这个点不在网络上(既不在弧段上也不在结点上),网络分析会根据该距离容限把该点归结到网络上。

        如下图所示,桔色点代表网络结点,蓝色代表弧段,灰色点为站点,红色线段是站点到弧段 AB 的距离,如果该距离在设定的距离容限内,则把站点归结到弧段 AB 上。

        设置合适的距离容限值才能保证网络分析的正常进行,距离容限值的计算方法:

        1. 计算出网络数据集中包含所有对象的最小外接矩形;
        2. 计算出该矩形对象的高度及宽度;
        3. 取两者中的较小值除以40,得出较合适的距离容限值。
        参数:
        value - 点到弧段的距离容限。
      • getBarrierNodes

        public int[] getBarrierNodes()
        返回障碍结点的 ID 列表。

        同障碍边意义相同,但其所设置的障碍是网络结点。障碍点通常可作为网络中的目的地,如运货或旅行到达的终点。

        返回:
        障碍结点的 ID 列表。
        默认值:
        默认值为 null。
      • setBarrierNodes

        public void setBarrierNodes(int[] value)
        设置障碍结点的 ID 列表。可选。

        同障碍边意义相同,但其所设置的障碍是网络结点。障碍点通常可作为网络中的目的地,如运货或旅行到达的终点。

        参数:
        value - 障碍结点的 ID 列表。
      • getBarrierEdges

        public int[] getBarrierEdges()
        返回障碍弧段的 ID 列表。

        一条边一旦被设置为障碍,也就是说这条边在分析过程中是禁行的。障碍边可以在分析过程中动态设置,不影响效率。

        返回:
        障碍弧段的 ID 列表。
        默认值:
        默认值为 null。
      • setBarrierEdges

        public void setBarrierEdges(int[] value)
        设置障碍弧段的 ID 列表。可选。

        一条边一旦被设置为障碍,也就是说这条边在分析过程中是禁行的。障碍边可以在分析过程中动态设置,不影响效率。

        参数:
        value - 障碍弧段的 ID 列表。
      • getTurnDataset

        public DatasetVector getTurnDataset()
        返回转向表数据集。

        请参见 setTurnDataset 方法的介绍。

        返回:
        转向表数据集。
        默认值:
        默认值为 null。
      • setTurnDataset

        public void setTurnDataset(DatasetVector value)
        设置转向表数据集。可选。

        转向表用于存储完成转弯需要的花费。关于转向表的详细介绍,请参见 NetworkBuilder 类的 createTurnTable 方法。

        注意:转向表可以通过 createTurnTable 方法自动创建,也可以自行创建。通过 createTurnTable 方法创建的转向表中转向权值均为 0,可根据实际情况进行修改。

        参数:
        value - 转向表数据集。
      • getTurnNodeIDField

        public String getTurnNodeIDField()
        返回转向结点 ID 的字段。
        返回:
        转向结点 ID 的字段。
        默认值:
        默认值为一个空字符串。
      • setTurnNodeIDField

        public void setTurnNodeIDField(String value)
        设置转向结点 ID 的字段。仅支持 16 位整型、32 位整型字段。可选。
        参数:
        value - 转向结点 ID 的字段。
      • getTurnFEdgeIDField

        public String getTurnFEdgeIDField()
        返回转向起始弧段 ID 的字段。
        返回:
        转向起始弧段 ID 的字段。
        默认值:
        默认值为一个空字符串。
      • setTurnFEdgeIDField

        public void setTurnFEdgeIDField(String value)
        设置转向起始弧段 ID 的字段。仅支持 16 位整型、32 位整型字段。可选。
        参数:
        value - 转向起始弧段 ID 的字段。
      • getTurnTEdgeIDField

        public String getTurnTEdgeIDField()
        返回转向终止弧段 ID 的字段。
        返回:
        转向终止弧段 ID 的字段。
        默认值:
        默认值为一个空字符串。
      • setTurnTEdgeIDField

        public void setTurnTEdgeIDField(String value)
        设置转向终止弧段 ID 的字段。仅支持 16 位整型、32 位整型字段。可选。
        参数:
        value - 转向终止弧段 ID 的字段。
      • getTurnWeightFields

        public String[] getTurnWeightFields()
        返回转向权值字段集合。

        请参见 setTurnWeightFields 方法的介绍。

        返回:
        转向权值字段集合。
        默认值:
        默认值为 null。
      • setTurnWeightFields

        public void setTurnWeightFields(String[] value)
        设置转向权值字段集合。可选。

        转弯权值即转弯耗费,是指从一个弧段经过中间结点抵达另外一个邻接弧段所需的花费。

        转向权值字段是转向表中表示转弯耗费的字段。通过该属性可以指定多个转向权值字段,在分析前设置有关参数时,可以选择其中的一个字段作为分析时的转向权值信息。

        关于转向表的详细介绍请参见 NetworkBuilder 类的 createTurnBuilder 方法。

        参数:
        value - 转向权值字段集合。
      • getNodeNameField

        public String getNodeNameField()
        返回存储结点名称的字段的字段名。
        返回:
        存储结点名称的字段的字段名。
        默认值:
        默认值为一个空字符串。
      • setNodeNameField

        public void setNodeNameField(String value)
        设置存储结点名称的字段的字段名。可选。
        参数:
        value - 存储结点名称的字段的字段名。
      • getEdgeNameField

        public String getEdgeNameField()
        返回存储弧段名称的字段。
        返回:
        存储弧段名称的字段。
        默认值:
        默认值为一个空字符串。
      • setEdgeNameField

        public void setEdgeNameField(String value)
        设置存储弧段名称的字段。可选。注意,如果不设置,即使将 isPathGuidesReturn 方法设置为 true,分析结果中也不会返回行驶导引。
        参数:
        value - 存储弧段名称的字段。
      • getRuleField

        public String getRuleField()
        返回网络数据集中表示网络弧段的交通规则的字段。

        网络数据集中代表交通规则的字段,存储了该弧段对应的交通规则,如该弧段为正向单行线,或逆向单行线、禁行线、双向通行线等。该字段的值与交通规则的对应关系,是通过 setFTSingleWayRuleValues()setTFSingleWayRuleValues()setProhibitedWayRuleValues()setTwoWayRuleValues() 等方法来设置的。

        例如,通过 setFTSingleWayRuleValues() 方法可以设置代表正向单行线的值,并且该方法允许设置多个值同时代表正向单行线,那么当交通规则字段的值为指定的这些值时,对应的弧段都将代表正向单行线。

        返回:
        网络数据集中表示网络弧段的交通规则的字段。
        默认值:
        默认值为一个空的字符串。
      • getFTSingleWayRuleValues

        public String[] getFTSingleWayRuleValues()
        返回用于表示正向单行线的字符串的数组。

        关于正向单行线字符串数组,请参阅 setFTSingleWayRuleValues 方法。

        返回:
        用于表示正向单行线的字符串的数组。
        默认值:
        默认值为空。
      • setFTSingleWayRuleValues

        public void setFTSingleWayRuleValues(String[] values)
        设置用于表示正向单行线的字符串的数组。可选。

        setRuleField 方法设置的交通规则字段的值为该方法所指定的字符串数组中任意一个时,表示对应的网络弧段为正向单行线。更多介绍请参见 setRuleField 方法。

        参数:
        values - 用于表示正向单行线的字符串的数组。
      • getTFSingleWayRuleValues

        public String[] getTFSingleWayRuleValues()
        返回用于表示逆向单行线的字符串的数组。

        关于逆向单行线字符串数组,请参阅 setTFSingleWayRuleValues 方法。

        返回:
        用于表示逆向单行线的字符串的数组。
        默认值:
        默认值为空。
      • setTFSingleWayRuleValues

        public void setTFSingleWayRuleValues(String[] values)
        设置用于表示逆向单行线的字符串的数组。可选。

        setRuleField 方法设置的交通规则字段的值为该方法所指定的字符串数组中任意一个时,表示对应的网络弧段为逆向单行线。更多介绍请参见 setRuleField 方法。

        参数:
        values - 用于表示逆向单行线的字符串的数组。
      • getProhibitedWayRuleValues

        public String[] getProhibitedWayRuleValues()
        返回用于表示禁行线的字符串的数组。

        关于禁行线字符串数组,请参阅 setTFSingleWayRuleValues 方法。

        返回:
        用于表示禁行线的字符串的数组。
        默认值:
        默认值为空。
      • setProhibitedWayRuleValues

        public void setProhibitedWayRuleValues(String[] values)
        设置用于表示禁行线的字符串的数组。可选。

        setRuleField 方法设置的交通规则字段的值为该方法所指定的字符串数组中任意一个时,对应的网络弧段即为禁行线。更多介绍请参见 setRuleField 方法。

        参数:
        values - 用于表示禁行线的字符串的数组。
      • getTwoWayRuleValues

        public String[] getTwoWayRuleValues()
        返回用于表示双向通行线的字符串的数组。

        关于双向通行线字符串数组,请参阅 setTFSingleWayRuleValues 方法。

        返回:
        用于表示双向通行线的字符串的数组。
        默认值:
        默认值为空。
      • setTwoWayRuleValues

        public void setTwoWayRuleValues(String[] values)
        设置用于表示双向通行线的字符串的数组。可选。

        setRuleField 方法设置的交通规则字段的值为该方法所指定的字符串数组中任意一个时,对应的网络弧段即为双向通行线。更多介绍请参见 setRuleField 方法。

        参数:
        values - 用于表示双向通行线的字符串的数组。
      • setRelations

        public void setRelations(MultiTransportationAnalystRelation[] values)
        设置多网络数据集关系数组。
        参数:
        values - 多网络数据集关系数组。
      • setNetworkDatasetsName

        public void setNetworkDatasetsName(String[] values)
        设置多网络数据集名称数组。
        参数:
        values - 多网络数据集名称数组。
      • getNetworkDatasetsName

        public String[] getNetworkDatasetsName()
        返回多网络数据集名称数组。
        返回:
        多网络数据集名称数组。
      • getEdgeFilter

        public String getEdgeFilter()
        返回多路网数据集交通网络分析中弧段过滤表达式。

        关于弧段过滤表达式的作用请参见 setEdgeFilter 方法。

        返回:
        多路网数据集交通网络分析中弧段过滤表达式。
      • setEdgeFilter

        public void setEdgeFilter(String filter)
        设置多路网数据集交通网络分析中弧段过滤表达式。可选。

        网络中的弧段依据某些特性可能会被分成几种类型,当实际分析中不需要所有弧段都参与分析时,可以设置过滤表达式从而只让符合条件的弧段参与分析,并且有可能提高分析的性能。

        参数:
        filter - 多路网数据集交通网络分析中弧段过滤表达式。
      • getBounds

        public Rectangle2D getBounds()
        返回最佳路径分析的分析范围。可选。

        当最佳路径分析只需要在某个范围内分析时,可以设置分析范围从而只让范围内的弧段参与分析。

        返回:
        最佳路径分析的分析范围。
      • setBounds

        public void setBounds(Rectangle2D bounds)
        设置最佳路径分析的分析范围。可选。

        当最佳路径分析只需要在某个范围内分析时,可以设置分析范围从而只让范围内的弧段参与分析。

        参数:
        bounds - 最佳路径分析的分析范围。

Copyright © 2021–2024 SuperMap. All rights reserved.