內蒙古java團隊

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

          ArcEngine影像圖配準

          Posted on 2007-03-08 16:43 帥子 閱讀(1194) 評論(0)  編輯  收藏 所屬分類: j2se技術專區
          ArcEngine影像圖配準

          影像圖配準主要包括以下幾個方面
          1.打開影像圖
          2.配準
          3.影像圖入庫/保存
          1.打開影像圖的代碼以前已經寫過了。
          2.配準
          ? 配準 主要使用IGeoReference這個接口來完成工作。
          ? 還有使用ActiveView來進行坐標轉換,將MapControl中鼠標的點擊位置 轉換為
          ? 地圖和影像圖上的坐標。
          ? 下面介紹IGeoReference接口
          ?? 首先RasterLayer實現了這個接口
          ?? CanGeoRef 監測該圖層是否可以做配準
          ?? PointsTransform 將鼠標的位置 轉換為柵格文件上的相對坐標。
          ?? Rectify 將糾正的結果保存為一個新的柵格文件 相當于另存為
          ?? Register 糾正的結果生成World文件 和柵格文件保存在同一個目錄下
          ?? Reset 取消糾正 但是Register 之前的操作不能恢復。
          ??
          ?? 最重要的是下面三個
          ?? Shift? 一點糾正 就是平移
          ?? TwoPointsAdjust 兩點配準 有一定的縮放
          ?? Warp 三點或以上配準
          ??
          ?? 注意事項
          ?? 1.每次Register是一個標志階段
          ??? 這每次配準的過程中 必須把上次Register 以來的所有配準點數據都使用上。
          ??? 例如:
          ??? 首先Register了
          ??? 然后 1.使用了一點平移
          ???????? 2.接下來 又接受了一個點 這個時候就要使用 兩點配準。
          ???????? 3.接下來 又接受了一個點 這個時候就要使用 三點配準了。
          ?? 2.配準一般還有一個附加的功能
          ???? 就是 讓用戶保存每次的配準過程 并且 提供每次配準過程的精度。這個需要自己補充。
          3.入庫/金字塔
          ? 直接來代碼:
          ? ???IRasterProps props=(IRasterProps)this.pRasterLayer.Raster;
          ????m_rasEnv=props.Extent;
          ????IBasicRasterSdeConnection pBasic=new BasicRasterSdeLoader();
          ????//提供連接信息
          ????pBasic.ServerName ="服務期名稱" ;
          ????pBasic.Instance ="端口號" ;
          ????pBasic.UserName ="用戶名" ;
          ????pBasic.Password ="密碼" ;????
          ????//提供影像圖
          ????pBasic.Raster =this.pRasterLayer .Raster ;??
          ????//名稱
          ????pBasic.SdeRasterName=rasterNameInDB;
          ????
          ????IRasterSdeServerOperation pRo=(IRasterSdeServerOperation)pBasic;
          ????//導入數據
          ????try
          ????{?????
          ?????pRo.Create();
          ?????pRo.ComputeStatistics();
          ????}
          ????catch(Exception ex)
          ????{
          ?????System.Windows .Forms .MessageBox .Show ("影像數據入庫失敗!"+ex.Message );
          ?????return;
          ????}
          ????//建立金字塔
          ????IRasterSdeStorage2? pRs=(IRasterSdeStorage2)pRo;
          ????pRs.PyramidOption=esriRasterSdePyramidOptEnum.esriRasterSdePyramidBuildSkipFirstLevel;
          ????pRs.PyramidResampleType=rstResamplingTypes.RSP_BilinearInterpolation;
          ????pRo.BuildPyramids();
          ????這個影像圖 就這樣到數據庫中去了
          ????
          ????注意
          ????一般自己還要建立一個關于影像圖的原數據表 。用來記錄那些影像圖是屬于自己的。還有名稱的轉換問題
          ????因為中文名稱是不可以的。??

          主站蜘蛛池模板: 大冶市| 宜宾市| 温宿县| 新干县| 绥棱县| 临猗县| 梅河口市| 灯塔市| 犍为县| 侯马市| 松溪县| 马山县| 临沧市| 大理市| 英吉沙县| 瓦房店市| 无棣县| 桐梓县| 博罗县| 陆川县| 海阳市| 密山市| 饶河县| 抚远县| 和静县| 疏附县| 徐闻县| 肥西县| 冕宁县| 巢湖市| 万荣县| 喜德县| 耿马| 洛宁县| 阿拉善右旗| 呼和浩特市| 资中县| 陕西省| 文水县| 青阳县| 甘洛县|