FAQ
十進経緯度から度分秒と UTM の表示形式(文字列)を取得する方法

ナレッジ番号:5316 | 登録日:2023/07/26 | 更新日:2024/11/21

概要

IConversionNotation::GetDDFromCoords  メソッドを使用すると、十進経緯度の座標を取得することができます。
IConversionNotation::GetDMSFromCoords メソッドを使用すると、十進経緯度の座標値から度分秒の表記を取得することができます。
引数として小数点以下の精度の指定が可能です。
IConversionNotation::GetUTMFromCoords メソッドを利用すると、整数値での UTM 座標の取得も可能です。
投影変換を必要としないので、簡単に投影座標値を得る方法として利用できます。

サンプル コード

以下のサンプル コードでは pFeature は IFeature 型で宣言された、対象となるフィーチャを示す変数です。
IGeometry pgeo = pFeature.ShapeCopy;
IPoint pt = (IPoint)pgeo;
IConversionNotation pn = (IConversionNotation)pt;
String astr;
astr = "座標値(X,Y) : " + pt.X.ToString() + " " + pt.Y.ToString() + "(" + pgeo.SpatialReference.Name + ")" + Environment.NewLine;
astr = astr + "10進経緯度 : " + pn.GetDDFromCoords(6) + Environment.NewLine;
astr = astr + "度分秒         : " + pn.GetDMSFromCoords(2) + Environment.NewLine;
astr = astr + "UTM            : "  + pn.GetUTMFromCoords((esriUTMConversionOptionsEnum)3) + Environment.NewLine;
System.Windows.Forms.MessageBox.Show(astr, "座標値情報");
Dim pgeo As IGeometry = pFeature.ShapeCopy
Dim p As IPoint = CType(pgeo, IPoint)
Dim pn As IConversionNotation = CType(p, IConversionNotation)
Dim astr As String
astr = "座標値(X,Y) : " + p.X.ToString() + " " + p.Y.ToString() + "(" + pgeo.SpatialReference.Name + ")" + ControlChars.NewLine
astr = astr + "10進経緯度 : " + pn.GetDDFromCoords(6) + ControlChars.NewLine
astr = astr + "度分秒         : " + pn.GetDMSFromCoords(2) + ControlChars.NewLine
astr = astr + "UTM             : " + pn.GetUTMFromCoords(CType(3, esriUTMConversionOptionsEnum)) + ControlChars.NewLine

System.Windows.Forms.MessageBox.Show(astr, "座標値情報")

出力例:

座標値(X,Y) : 139.58054761 35.699966384(GCS_Tokyo)
10進経緯度  : 35.699966N 139.580548E
度分秒         : 35 41 59.88N 139 34 49.97E
UTM           : 54N 371596 3951206

メタデータ

機能

種類

製品