阅读:1437回复:0
[求助]Gis高级分析功能请求
<b>讨论]高级分析
</b> <P>谁遇到过这个问题:错误(试图将无效的元素添加到数组)</P> <P>INetwork pNetWork; INetElements pNetElements; int Count, UserClassID, UserID, UserSubID; IList pList; INetSolver pNetSolver; ITraceFlowSolver pTraceFlowSolver; IJunctionFlag[] pJunctionFlag; INetFlag pNetFlag; IEnumNetEID JunctionEIDs, EdgeEIDs; System.Object[] SegmentCost; </P> <P> pNetWork = AdvancedJunction.m_GeometricNetwork.Network; pList = AdvancedJunction.m_List; Count = pList.Count;</P> <P> pNetSolver = new TraceFlowSolverClass(); pNetSolver.SourceNetwork = pNetWork; pTraceFlowSolver = pNetSolver as ITraceFlowSolver; pNetElements = pNetWork as INetElements;</P> <P> pJunctionFlag = new JunctionFlagClass[Count];</P> <P> for (int i = 0; i < Count; i++) { pNetElements.QueryIDs((int)pList,esriElementType.esriETJunction, out UserClassID, out UserID, out UserSubID);</P> <P> if ((UserClassID > 0) ;; (UserID > 0)) { pNetFlag = new JunctionFlagClass(); pNetFlag.UserClassID = UserClassID; pNetFlag.UserID = UserID; pNetFlag.UserSubID = UserSubID; pJunctionFlag = pNetFlag as IJunctionFlag; } } try { //这句话报错 <FONT color=#ee3d11> pTraceFlowSolver.PutJunctionOrigins(1,ref pJunctionFlag[0]); </FONT> } catch(Exception exp) { MessageBox.Show(exp.Message); SegmentCost = new System.Object[Count-1]; try { pTraceFlowSolver.FindPath(esriFlowMethod.esriFMConnected,esriShortestPathObjFn.esriSPObjFnMinMax,out JunctionEIDs, out EdgeEIDs, Count-1, ref SegmentCost[0]); } catch(Exception ex) { MessageBox.Show(ex.Message); }</P> |
|