IGeoReference を利用したラスターデータセットのジオリファレンス

IRasterLayer pRasterLayer = (IRasterLayer)ArcMap.Document.FocusMap.get_Layer(0);
IGeoDataset pGeoDataset = (IGeoDataset)pRasterLayer;
IGeoReference pGeoReference = (IGeoReference)pRasterLayer;
 
if(pGeoReference.CanGeoRef == false)
    {
        return;
    }
 
//基準参照点(現在のマップ座標系に基づいたラスタ レイヤの特定セルのポイント)
IPointCollection fromPoints = new MultipointClass();
fromPoints.AddPoint(pGeoDataset.Extent.LowerLeft);
fromPoints.AddPoint(pGeoDataset.Extent.UpperLeft);
fromPoints.AddPoint(pGeoDataset.Extent.UpperRight);
fromPoints.AddPoint(pGeoDataset.Extent.LowerRight);
 
IEnvelope pEnvelope = ArcMap.Document.ActiveView.Extent;
 
//基準参照点(現在のマップ座標系に基づいた対応するポイント)
IPointCollection toPoints = new MultipointClass();
toPoints.AddPoint(pEnvelope.LowerLeft);
toPoints.AddPoint(pEnvelope.UpperLeft);
toPoints.AddPoint(pEnvelope.UpperRight);
toPoints.AddPoint(pEnvelope.LowerRight);
 
pGeoReference.Warp(fromPoints, toPoints, 0);                //移動
pGeoReference.Rectify(@"D:\Workspace\raster.img", "IMG");   //レクティファイ(第引数:フォーマット)
  • URLをコピーしました!

この記事を書いた人

伊達と酔狂のGISエンジニア。GIS上級技術者、Esri認定インストラクター、CompTIA CTT+ Classroom Trainer、潜水士、PADIダイブマスター、四アマ。WordPress は 2.1 からのユーザーで歴だけは長い。代表著書に『"地図リテラシー入門―地図の正しい読み方・描き方がわかる』。日本地理学会賞(著作発信部門)受賞(2024年)。好きな地図投影法はパース・クインカンシャル図法とマクブライド・トーマス平極四次曲線図法。発言は個人の見解です。

ESRIジャパン株式会社所属、日本地図学会常任委員、青山学院大学非常勤講師兼務(2021年度~2023年度)、ストーリーマップ自己紹介、researchmapポートフォリオ

目次