1

我有一个 MapControl,想知道当前在 x 和 y 轴上显示了多少度数。

第一个例子: 地图景观

360 度显示在 x 轴(经度)上

y 轴(纬度)上显示约 90 度

(缩放级别为 3.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 回答
-1

知道了:

经度:

360 * Math.Pow(0.5, mcMapControl.ZoomLevel - 1) * mcMapControl.ActualWidth / 409.5;

纬度:

180 * Math.Pow(0.5, mcMapControl.ZoomLevel - 1) * mcMapControl.ActualHeight / 409.5;
于 2016-01-09T03:14:44.060 回答