1

MapControl があり、現在 x 軸と y 軸に表示されている度数を知りたいです。

最初の例: 地図の風景

360 度が x 軸 (経度) に表示されます。

y 軸 (緯度) に ~90 度が表示されます。

(ズームレベルは 3.2 で、最大ズームアウトです)

2 番目の例: 地図の肖像画

x 軸 (経度) で ~220 度

Y 軸上で 180 度 (緯度)

(ズーム レベル: 1.7、最大ズーム アウト)

次のコードを使用して、x 軸の現在の度数を計算してみました。

double dist = 360 * Math.Pow(0.5, macSurrounding.ZoomLevel - 1);

しかし、ズームレベルが奇妙であるため、機能しません...

4

2 に答える 2

4

MapControl のGetLocationFromOffsetメソッドを使用して、現在のマップ ビューポートの南東と北西のコーナー ポイントの地理座標を計算する必要があります。ビューポートの幅と高さは、これらのポイントの緯度と経度の差になります。

Geopoint northEast;
Geopoint southWest;

map.GetLocationFromOffset(new Point(map.ActualWidth, 0), out northEast);
map.GetLocationFromOffset(new Point(0, map.ActualHeight), out southWest);

var width = northEast.Position.Longitude - southWest.Position.Longitude;
var height = northEast.Position.Latitude - southWest.Position.Latitude;
于 2016-01-09T11:10:18.523 に答える