我有一个MapControl,想知道当前在x和y轴上显示了多少度。
x轴(经度)上显示360度
~90度显示在y轴(纬度)
(缩放级别为3.2且最大缩小)
x轴上的~220度(经度)
y轴(纬度)上180度
(缩放级别:1.7;最大缩小)
我尝试使用以下代码计算x轴上的当前度数:
double dist = 360 * Math.Pow(0.5, macSurrounding.ZoomLevel - 1);
但它不起作用,因为缩放级别很奇怪......
答案 0 :(得分:3)
您应该使用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;
答案 1 :(得分:-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;