「DotSpacial」を使って地図の回転行う

「DotSpacial」では、地図の回転ができなかったので、地図の回転を行った場合のメモです。

地図の回転ボタンは「DotSpatial.Plugins.ScaleBar」などのプラグインを参考にし、事前に用意しておきます。

画像の回転

1.回転角度の追加

画面から指定された回転角度を保持します。「DotSpacial」では、回転角度を保持していないので新に回転角度のプロパティを追加します。

2.回転した地図の描画

回転角度が設定された場合は、地図画像を回転し、描画します。

ただし、そのまま画像を回転させてしまうと、回転させた際に、画像が切れてしまうので、「DotSpacial」のバッファ領域を拡大します。
バッファ領域は、MapFrame._extendBufferをtrueに設定することで、バッファ領域が3倍に拡張されます。
バッファ領域を拡大した後、画像を回転し、回転した画像を、画面に描画します。画像の回転の注意点としては、画像の回転をそのまま実施すると、図形の左上頂点から回転が始まるので、画像を中心点に移動させてから、回転し、回転後に元の位置に戻します。

パン(地図移動)処理の対応

回転角度が設定された場合は、地図ドラッグ後の座標位置が変わってしまうので、パン(地図移動)処理の対応も行います。

処理イメージは以下の通り。

画面から、回転させる角度を設定します。

地図が回転します。

ラベルもそのまま回転します。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする