标签:Set esriNetworkLoaderFieldCheck fcnames item 几何 var Geometric networkLoader2 Net
12 /// <summary>
3 /// 创建几何网络
4 /// </summary>
5 /// <param name="junctions"></param>
6 /// <param name="simpleEdges"></param>
7 /// <param name="complexEdges"></param>
8 /// <param name="featureDatasetName"></param>
9 /// <param name="networkname"></param>
10 public static void CreateGeometricNetwork(List<string> junctions, List<string> simpleEdges, List<string> complexEdges, IFeatureDatasetName featureDatasetName, string networkname) {
11 // Create a network loader.
12 INetworkLoader2 networkLoader2 = new NetworkLoaderClass();
13 // Set the network name.
14 networkLoader2.NetworkName = networkname;
15 // Set the network type.
16 networkLoader2.NetworkType = esriNetworkType.esriNTUtilityNetwork;
17 // Set the containing feature dataset.
18 networkLoader2.FeatureDatasetName = (IDatasetName)featureDatasetName;
19
20 // Add classes to the network.
21 foreach (var item in junctions) {
22 if (networkLoader2.CanUseFeatureClass(item) ==
23 esriNetworkLoaderFeatureClassCheck.esriNLFCCValid) {
24 networkLoader2.AddFeatureClass(item,
25 esriFeatureType.esriFTSimpleJunction, null, false);
26 }
27 }
28 // 添加简单边
29 foreach (var item in simpleEdges) {
30 if (networkLoader2.CanUseFeatureClass(item) ==
31 esriNetworkLoaderFeatureClassCheck.esriNLFCCValid) {
32 networkLoader2.AddFeatureClass(item,
33 esriFeatureType.esriFTSimpleEdge, null, false);
34 }
35 }
36 // 添加复杂边
37 foreach (var item in complexEdges) {
38 if (networkLoader2.CanUseFeatureClass(item) ==
39 esriNetworkLoaderFeatureClassCheck.esriNLFCCValid) {
40 networkLoader2.AddFeatureClass(item,
41 esriFeatureType.esriFTComplexEdge, null, false);
42 }
43 }
44
45 // Set the enabled field for the distribmains class.
46 List<string> fcnames = new List<string>(junctions);
47 fcnames.AddRange(simpleEdges);
48 fcnames.AddRange(complexEdges);
49
50 INetworkLoaderProps networkLoaderProps = (INetworkLoaderProps)networkLoader2;
51 String defaultEnabledFieldName = networkLoaderProps.DefaultEnabledField;
52 esriNetworkLoaderFieldCheck enabledFieldCheck = esriNetworkLoaderFieldCheck.esriNLFCUnknownError;
53 foreach (var item in fcnames) {
54 enabledFieldCheck = networkLoader2.CheckEnabledDisabledField(item, defaultEnabledFieldName);
55 switch (enabledFieldCheck) {
56 case esriNetworkLoaderFieldCheck.esriNLFCValid:
57 case esriNetworkLoaderFieldCheck.esriNLFCNotFound:
58 networkLoader2.PutEnabledDisabledFieldName(item,
59 defaultEnabledFieldName);
60 break;
61 }
62 }
63 networkLoader2.PreserveEnabledValues = true;
64
65 // Set the ancillary role field for the tanks class.
66 //String defaultAncillaryRoleFieldName = networkLoaderProps.DefaultAncillaryRoleField;
67 //esriNetworkLoaderFieldCheck ancillaryRoleFieldCheck = esriNetworkLoaderFieldCheck.esriNLFCUnknownError;
68 //foreach (var item in fcnames) {
69 // networkLoader2.CheckAncillaryRoleField(item, defaultAncillaryRoleFieldName);
70 // switch (ancillaryRoleFieldCheck) {
71 // case esriNetworkLoaderFieldCheck.esriNLFCValid:
72 // case esriNetworkLoaderFieldCheck.esriNLFCNotFound:
73 // networkLoader2.PutAncillaryRole(item,
74 // esriNetworkClassAncillaryRole.esriNCARSourceSink,
75 // defaultAncillaryRoleFieldName);
76 // break;
77 // }
78 //}
79
80 // If the geodatabase is an SDE GDB, set the configuration keyword.
81 if (SdeWorkspace.Type == esriWorkspaceType.esriRemoteDatabaseWorkspace) {
82 networkLoader2.ConfigurationKeyword = "Network_Defaults";
83 }
84 // Set the snap tolerance for the network.
85 networkLoader2.SnapTolerance = networkLoader2.MinSnapTolerance;
86
87 //// Add a weight with a double type to the network.
88 //networkLoader2.AddWeight("MainWeight", esriWeightType.esriWTDouble, 0);
89 //// For weights of type esriWTBitGate, the BitGateSize parameter should be set:
90 //networkLoader2.AddWeight("WTBitGateEx", esriWeightType.esriWTBitGate, 5);
91 //// Associate the MainWeight weight with the DIAMETER field of Distribmains.
92 //networkLoader2.AddWeightAssociation("MainWeight", "Distribmains", "DIAMETER");
93
94 // Load the network.
95 networkLoader2.LoadNetwork();
96 }
转载于:https://www.cnblogs.com/xgyb12458/archive/2010/06/02/1749985.html
标签:Set,esriNetworkLoaderFieldCheck,fcnames,item,几何,var,Geometric,networkLoader2,Net 来源: https://blog.csdn.net/weixin_33709590/article/details/93979222
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。