<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    內蒙古java團隊

    j2se,j2ee開發組
    posts - 139, comments - 212, trackbacks - 0, articles - 65
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    ArcEngine中拓撲的使用

    Posted on 2007-03-08 16:39 帥子 閱讀(1096) 評論(2)  編輯  收藏 所屬分類: J2EE技術專區
    ArcEngine中拓撲的使用

    拓撲(ITopology)的使用包括
    1.建立拓撲
    2.驗證拓撲
    3.編輯過程中保證拓撲的正確
    4.查詢系統中存在的拓撲
    1.首先 來看看建立拓撲
    ????Topology實現了ITopology這個接口 但是給類是不能用來創建對象的。
    ??必須要通過調用 ITopologyContainer::CreateTopology這個方法來建立一個Topology
    ??FeatureDataset 實現了ITopologyContainer這個接口。那么 這就是說拓撲只能在一個
    ??FeatureDataset的范圍內建立。而不能獨立存在于Workspace中。這樣做的原因是需要保證
    ??參與同一個拓撲的FeatureClass具有同一個投影坐標系統。 建立拓撲后需要將ObjectClass
    ??加入到拓撲中去。這樣這個拓撲就可以用來驗證這幾個ObjectClass 的對象之間的關系了。
    ?????驗證關系就要有規則,規則是由ITopologyRule來表達的。ITopologyRule必須要被
    ???加入到一個ITopologyRuleContainer中去。而Topology實現了這個接口。
    ???一個ITopologyRule用來表達兩個ObjectClass的對象之間的某個關系。
    ?????具體代碼參看接口就可以了。
    ?2.驗證拓撲
    ?????ITopology有一個方法 ValidateTopology 用來驗證指定區域內的拓撲。需要注意 沒有版本
    ???的拓撲可以在 任何時候驗證。而有版本的拓撲必須在編輯回話中驗證。
    ?3.拓撲編輯
    ?? 1.移動共用點
    ??? 1.首先需要打開拓撲 建立拓撲圖(ITopologyGraph)
    ??? 代碼如下:
    ??? //topoLayer 是一個打開的拓撲圖層
    ??? ITopologyGraph pTG=topoLayer.Topology.Cache;
    ??pTG.Build(pA.Extent,false);
    ??2.然后 需要獲得當前節點或者邊 這個操作要使用拓撲圖的點擊測試
    ??ITopologyElement topeEle
    ??pTG.HitTest(... ref topeEle);
    ??這個方法在點擊測試成功的時候返回true.而且會通過topeEle這個ref 參數將選中的元素(點或者邊)
    ??返回.
    ??3.還有一種獲取節點的方法
    ??? 首先調用拓撲圖的Select方法 選中點擊測試的元素(pTG.Select)
    ??? 然后可以查詢拓撲圖的選中節點集合 就可以找到該節點(pTG.NodeSelection)
    ??4.為該元素使用一個Feedback.
    ???//其中 pNode 就是當前節點 sr 是參考坐標系 可以使用null
    ???//還有給Feedback設置Display
    ??? m_pNodeFeedback =pTG.GetSplitMoveNodeFeedback(pNode,false,sr);
    ??? m_pNodeFeedback.Display= activeView.ScreenDisplay;
    ??5.在鼠標移動的時候 調用Feedback的MoveTo 方法。
    ???if(m_pNodeFeedback!=null)
    ???{
    ????//activeView 是活動的試圖
    ????//首先要把將點坐標轉換為地圖中的坐標。
    ????//然后調用MoveTo 方法????
    ????IPoint pt=activeView.ScreenDisplay.DisplayTransformation.ToMapPoint(X,Y);
    ????m_pNodeFeedback.MoveTo(pt);
    ???}
    ??? 6.在鼠標釋放的時候
    ??? ??//獲取拓撲圖
    ??????? ITopologyGraph pTG=topoLayer.Topology.Cache;
    ??????? //轉換坐標???
    ????? IPoint pt=pA.ScreenDisplay.DisplayTransformation.ToMapPoint(X,Y);
    ????? //獲得正在做拓撲編輯的元素??? ????
    ???? ITopologyNode pTN=(ITopologyNode)m_pTopoElement;
    ???? //實施拓撲編輯
    ????pTG.SplitMoveNode(pTN,pt,false);
    ????//提交拓撲編輯結果
    ????IEnvelope pE;
    ????pTG.Post(out pE);
    ?4.查詢系統中的拓撲
    ?? 還是ITopologyContainer 這個接口 這個接口有FeatureDataset這個唯一的實現。
    ?? CreateTopology 建立一個新的拓撲
    ?? DefaultClusterTolerance The default cluster tolerance as per the topology engine.
    ?? MaximumClusterTolerance The maximal cluster tolerance as per the topology engine.
    ?? MinimumClusterTolerance The minimal cluster tolerance as per the topology engine.
    ?? Topology 通過索引打開拓撲.
    ?? TopologyByID 通過ID打開拓撲.
    ?? TopologyByName 通過名字打開拓撲
    ?? TopologyCount? 拓撲的數目


    評論

    # re: ArcEngine中拓撲的使用[未登錄]  回復  更多評論   

    2012-03-06 18:51 by 浩子
    請問如何對有版本拓撲驗證

    # re: ArcEngine中拓撲的使用[未登錄]  回復  更多評論   

    2012-03-06 18:52 by 浩子
    有版本的數據集能進行拓撲分析嗎
    主站蜘蛛池模板: 久草免费福利视频| 丰满妇女做a级毛片免费观看| 国产精成人品日日拍夜夜免费| 久久亚洲av无码精品浪潮| 黄色免费在线观看网址| 亚洲国产成人久久一区WWW| 爱情岛论坛亚洲品质自拍视频网站| 成人免费无码大片a毛片软件 | h视频免费高清在线观看| 四虎影视永久免费观看地址 | 国产aⅴ无码专区亚洲av麻豆| 无码人妻一区二区三区免费视频| 亚洲日韩在线观看| 国产精品免费视频观看拍拍| 亚洲成AV人片在线观看WWW| 成人免费区一区二区三区 | 久久精品国产96精品亚洲| 久久久国产精品无码免费专区| 亚洲色图国产精品| 免费国产作爱视频网站| 亚洲色一区二区三区四区| 波多野结衣免费视频观看| 女人隐私秘视频黄www免费| 亚洲一区二区三区电影| 成人毛片免费观看| 黄页网站在线观看免费| 久久久综合亚洲色一区二区三区 | 一区二区三区免费高清视频| 亚洲AV午夜福利精品一区二区| 国产v精品成人免费视频400条| 国产精品观看在线亚洲人成网| 77777亚洲午夜久久多人| 182tv免费视视频线路一二三| 亚洲精品国产综合久久久久紧| 亚洲精品亚洲人成在线观看下载| 久久免费观看国产精品88av| 亚洲乱理伦片在线观看中字| 亚洲小说区图片区另类春色| 欧美a级在线现免费观看| 国产精品偷伦视频免费观看了 | 在线看片v免费观看视频777|