wlh_jimmy
路人甲
路人甲
  • 注册日期2004-02-02
  • 发帖数66
  • QQ309588724
  • 铜币363枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1354回复:0

[求助]Gis高级分析功能请求

楼主#
更多 发布于:2004-11-29 10:21
<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>
喜欢0 评分0
游客

返回顶部