kendomen
路人甲
路人甲
  • 注册日期2004-10-18
  • 发帖数13
  • QQ
  • 铜币163枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1580回复:2

arcengine netwok

楼主#
更多 发布于:2005-01-21 17:41
<P>在C#中执行  ITraceFlowSolver.PutEdgeOrigins count,ref IEdgeFlag一直提示参数错误,请高手赐教</P>
喜欢0 评分0
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
1楼#
发布于:2005-01-22 10:30
错误都没写出,看不懂
GIS麦田守望者,期待与您交流。
举报 回复(0) 喜欢(0)     评分
kendomen
路人甲
路人甲
  • 注册日期2004-10-18
  • 发帖数13
  • QQ
  • 铜币163枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2005-01-24 17:21
<P>hJuncEIDs = null;
   hEdgeEIDs =null;
   if (m_CurrentNetwork==null)  return;
   ITraceFlowSolver pTraceFlowSolver = new TraceFlowSolverClass() as ITraceFlowSolver ;
   INetSolver pNetSolver = pTraceFlowSolver as INetSolver;
   INetwork pNetwork = m_CurrentNetwork.Network;
   pNetSolver.SourceNetwork = pNetwork;
   INetElements pNetElements = pNetwork as INetElements;
   int pCount = hPoints.PointCount;
  
   IEdgeFlag[] pEdgeFlagList = new EdgeFlagClass[pCount];
   for (int i = 0 ;i<pCount;i++)
   {
    IPoint pEdgePoint = hPoints.get_Point(i);
    int pNearestEdgeEID;
    IPoint pNearestEdgePoint;
    double pPercent;
    m_PointToEID.GetNearestEdge(pEdgePoint,out pNearestEdgeEID,out pNearestEdgePoint,out pPercent);
    if (pNearestEdgeEID>0)
    {
     int pUserClassID;
     int pUserID;
     int pUserSubID;
     pNetElements.QueryIDs(pNearestEdgeEID,esriElementType.esriETEdge,
      out pUserClassID,out pUserID,out pUserSubID);
     if ((pUserClassID > 0) ;; (pUserID > 0))
     {
      INetFlag pNetFlag = new EdgeFlagClass () as INetFlag ;
      pNetFlag.UserClassID = pUserClassID;
      pNetFlag.UserID = pUserID;
      pNetFlag.UserSubID = pUserSubID;
      pNetFlag.Label = "Edge";
      IEdgeFlag pTemp  = (IEdgeFlag)(pNetFlag as IEdgeFlag);
      pEdgeFlagList =pTemp;
     }
    }
   }
        
   try
   {
    IEdgeFlag pD =  pEdgeFlagList[0] as IEdgeFlag;
    pTraceFlowSolver.PutEdgeOrigins(pCount,ref pD);
   }
   catch (ArgumentException  ex)
   {
    MessageBox.Show ("error------"+ex.ToString ());
   }</P><P>   if (hWeightName!="")
   {
    INetSchema pNetSchema =  m_CurrentNetwork.Network as INetSchema;
    INetWeight pNetWeight =  pNetSchema.get_WeightByName(hWeightName);
  
    INetSolverWeights pNetSolverWeights = pTraceFlowSolver as INetSolverWeights ;
    pNetSolverWeights.FromToEdgeWeight = pNetWeight;
    pNetSolverWeights.ToFromEdgeWeight = pNetWeight;
   }
   object[] pSengmentCost = new object [pCount-1];</P><P>   pTraceFlowSolver.FindPath(esriFlowMethod.esriFMConnected,esriShortestPathObjFn.esriSPObjFnMinSum,
    out hJuncEIDs, out hEdgeEIDs, pCount - 1, ref pSengmentCost[0]);</P><P>提示错误:参数错误.</P>
举报 回复(0) 喜欢(0)     评分
游客

返回顶部