Microsoft.Maps.MapControl.WPF の残念なうごき
Microsoft.Maps.MapControl.WPFはNuGetで入れることができるWPF用の地図コントロールです
ベースとなる地図がBing MapsになっているだけのよくあるTMS(?)のコントロールで最新版は1.0.0.3(2015/02/19)となっています
このコントロールはMapCore.BoundingRectangle
プロパティを参照することで現在表示している領域の東西南北が取得できます
ということで地図が移動した時の西と東の度を画面上に表示するだけのアプリを作ってみました(わかると思いますが西を左側、東を右側にだしてます)
東が180°を超えた瞬間に西と東が入れ替わります
BoundingRectangleプロパティが返すLocationRect
クラスがWestとEastをイイ感じ(?)に入れ替えてくれるのが原因なんですが、どう見てもバグです、すごく困ります
LocationRectクラスはどうやら
- West < East
- 緯度は±180の中にある
を保証しようとしているためにこんなことになっているようです (これだと経度180度線が入った領域は表現できませんよね)
Microsoft.Maps.MapControl.WPFの中ではLocationRectを使う箇所がいくつかあるんですが、上の値チェックはクラスに側が保証していることを前提にできていたりするので、ちょっと修正とかできないんだろうなーとは思うんですがどうなんでしょう
そもそもバグ報告をどこにしていいのかも分からないし、とっくにサポートおわってんじゃないかとか思っていたり
ちなみにUWP版にはこのプロパティはありません