複数の座標系の地図データを自動的に変換して重ね合わせて表示できます。
ここでは、手動で日本測地系の緯度経度値を世界測地系に変換する方法を示します。
●手順
座標系オブジェクトを作り出すためのファクトリクラスを生成します。
日本測地系と世界測地系の座標系オブジェクトを生成します。
日本測地系から世界測地系への座標変換オブジェクトを生成します。
座標を変換します。
●コード例[C#]
// 以下の NameSpace を using して下さい。
// using MapQuest.Coordinates;
// using MapQuest.CoordinateSystems;
// using MapQuest.CoordinateTransformations;
// 1. 座標系オブジェクトのファクトリクラスを生成
ICoordinateSystemSimpleFactory csf = new CoordinateSystemMapQuestFactory();
// 2. 日本測地系と世界測地系の座標系オブジェクトを生成
ICoordinateSystem csTokyo = csf.Create(0); // 日本
ICoordinateSystem csJgd2000 = csf.Create(200); // 世界
// 3. 日本測地系から世界測地系への座標変換オブジェクトを生成。
ICoordinateTransformation cst = CoordinateTransformationFactory.Create(csTokyo, csJgd2000);
// 4. 座標を変換(緯度経度の単位は ミリ秒 です)
Coordinate p1 = new Coordinate(136d 3600000, 36d 3600000); // 経度:136度、緯度:36度
cst.MathTransform.Transform(p1);
// 結果の表示(見やすいように 度単位 に変換しています)
string str = String.Format("経度:{0}、緯度:{1}", p1.X / 3600000d, p1.Y / 3600000d);
MessageBox.Show(str);
●座標系を表す番号について
上記のサンプルでは、0:日本測地系の緯度経度座標系、200:世界測地系の緯度経度座標系を利用しまし た。
他に指定できる座標系番号には以下のものがあります。
番号 | 内容 | 座標の単位 |
0 | 日本測地系 緯度経度座標系 | 緯度経度(ミリ秒) |
1~19 | 日本測地系 1~19系 | 直行XY座標(cm) |
101~160 | UTM 座標系ゾーン 1~60 | 直行XY座標(cm) |
200 | 世界測地系 緯度経度座標系 | 緯度経度(ミリ秒) |
201~219 | 世 界測地系 1~19系 | 直行XY座標(cm) |
800 | 緯度経度座標系(世界測地系、測地成果2011補正適用) | 直行XY座標(cm) |
801~819 | 平面直角座標系 1~19系座標系(世界測地系、測地成果2011補正適用) | 緯度経度(ミリ秒) |
これらを指定すれば、さまざまな座標系変換を行うことができます。