FAQ
マウスクリックした位置をマップ単位で取得する方法

ナレッジ番号:5482 | 登録日:2023/07/27 | 更新日:2024/12/02

【概要】

マウスクリックした位置をマップ単位で取得する方法を以下に示します。
マウスクリックした位置を取得するにはUIToolControlのMouseDownイベントを使用します。
このイベントはマウスクリックした位置をピクセル単位で返します。
IDisplayTransformation :: ToMapPointメソッドを使用するとピクセル単位をマップ単位に変換することができます。


【手順】

  1. ArcMapを起動します。

  2. Visual Basic Editorを開きます。

  3. UIToolControlを新規作成します。

    A:[ツール] > [カスタマイズ]をクリックしてカスタマイズダイアログを開きます。
    B:[コマンド]タブをクリックします。
    C:[カテゴリ]リストからUIControlsを選択します。
    D:[保存先]ドロップダウンリストから"無題"を選択し、現在のマップドキュメントにツールを保存します。
      "Normal"を選択するとすべてのArcMapドキュメントにツールが保存されます。
    E:[新規UIControl]をクリックします。
    F: UIToolControlを選択し[作成]をクリックします。
    G:新規UIToolControlを任意のツールバーにドラッグします。
    H:カスタマイズダイアログを閉じます。

  4. UIToolControlを右クリックし、[ソースの表示]を選択します。

  5. UIToolControlのMouseDownイベントに以下のコードをコピーします。

    
    ' x、yはユーザがクリックしたポイントをデバイス単位で定義します
    
    Dim pPoint As IPoint
    Dim pApp As IMxApplication
    Set pApp = Application
    
    
    
    ' デバイス単位をマップ単位に変換します
    Set pPoint = pApp.Display.DisplayTransformation.ToMapPoint(x, y)
    
    MsgBox "クリックされた位置の座標: " & vbNewLine & vbNewLine & _
    "X = " & pPoint.x & vbNewLine & _
    "Y = " & pPoint.y
    
    
    
    
  6. Visual Basic Editorを閉じます。

  7. UIToolControlを選択し、画面上でクリックしてツールを実行します。

■備考
プラットフォーム          N/A
ESRI Art. Number         27426

メタデータ

種類

機能

製品