程序集: SuperMap.Analyst.NetworkAnalyst (in SuperMap.Analyst.NetworkAnalyst)
版本: dll
语法
C# |
---|
public class TransportationAnalystSetting |
备注
在利用交通网络分析类(( TransportationAnalyst 类)进行各种交通网络分析时,都要首先设置交通网络分析的环境,而交通网络分析环境的设置就是通过 TransportationAnalyst 类对象的 AnalystSetting 属性来完成的,这个属性对应于 TransportationAnalystSetting 类的对象。
交通网络分析环境中的设置会直接影响到分析的结果,交通网络分析包括路径分析,旅行商分析,服务区分析和最近设施查找。网络数据集不同于一般线数据集的是,还包含了一个网络结点的子数据集,因此网络数据集拥有两个属性表,一个是记录弧段信息的属性表,一个是记录结点信息的属性表。在网络分析环境中,可以设置:
1. 进行交通网络分析的数据集(NetworkDataset);
2. 网络中唯一标识结点的字段(NodeIDField),该字段来源于网络结点属性表;
3. 唯一标识弧段的字段(EdgeIDField),该字段来源于弧段属性表;
4. 记录弧段起、终结点 ID 的字段(FNodeIDField 和 TNodeIDField),该字段来源于弧段属性表,对应于网络结点属性表中的结点 ID;
5. 记录要经过某一弧段需要多少权值字段信息(WeightFieldInfos),来源于弧段属性表;
6. 结点到弧段的距离容限(Tolerance);
7. 表示转向表的一系列属性,如转向表数据集(TurnDataset)、转向结点 ID 的字段(TurnNodeIDField),转向起始弧段 ID 的字段(TurnFEdgeIDField)、转向终止弧段 ID 的字段(TurnTEdgeIDField)以及转向权值字段(TurnWeightFields)。有关转向表的介绍请参见 NetworkBuilder 类的 CreateTurnTable 方法。
8. 网络中障碍边和障碍点的 ID 集合(BarrierEdges、BarrierNodes);
9. 存储结点名称和弧段名称的字段的字段名(NodeNameField、EdgeNameField)。
示例
以下代码示例通过网络数据集查找最佳路径,并将其结果的路由对象添加到 MapControl 的 TrackingLayer 中显示。
下面函数中操作的网络数据集为安装目录\SampleData\changchun\下的 changchun.udb 数据源中的名为 RoadNet 的网络数据集。
public void FindPathExample(DatasetVector networkDataset) { //构建一个网络分析环境设置实例并设置其属性 TransportationAnalystSetting transportationAnalystSetting = new TransportationAnalystSetting(); transportationAnalystSetting.NetworkDataset = networkDataset; transportationAnalystSetting.EdgeIDField = "SmID"; transportationAnalystSetting.NodeIDField = "SmNodeID"; transportationAnalystSetting.FNodeIDField = "SmFNode"; transportationAnalystSetting.TNodeIDField = "SmTNode"; WeightFieldInfo weightInfo = new WeightFieldInfo(); weightInfo.FTWeightField = "smLength"; weightInfo.TFWeightField = "smLength"; transportationAnalystSetting.WeightFieldInfos.Add(weightInfo); //创建交通网络分析对象并设置其属性 TransportationAnalyst transportationAnalyst = new TransportationAnalyst(); transportationAnalyst.AnalystSetting = transportationAnalystSetting; //加载网络模型 transportationAnalyst.Load(); //构建交通网络分析参数对象并设置其属性 TransportationAnalystParameter parameter = new TransportationAnalystParameter(); parameter.Nodes = new Int32[2] { 2, 50 }; parameter.IsRoutesReturn = true; //进行网络分析,获得最佳路径 TransportationAnalystResult result = transportationAnalyst.FindPath(parameter, true); }
继承层次
SuperMap.Analyst.NetworkAnalyst..::.TransportationAnalystSetting