我希望在地图放大或缩小时缩放mapoverlay内容。 地图缩放由地图的ZoomLevel控制。 有人知道一个公式,它在MapOverlay中缩放与地图相同的数量吗?
我正在寻找像
这样的东西public void OnZoomLevelChanged()
{
img.Width = initialWidth * Map.ZoomLevel * [someRatioFactor]
img.Height= initialHeight * Map.ZoomLevel * [someRatioFactor]
}
答案 0 :(得分:0)
有关缩放/缩放级别的详细信息,请参阅此处
http://msdn.microsoft.com/en-us/library/aa940990.aspx
如果您需要在每次放大/缩小时缩放到每个像素的正确距离,您可以使用类似以下功能的内容:
public static double MetersToPixels(double meters, double latitude, double zoomLevel)
{
var pixels = meters / (156543.04 * Math.Cos(latitude) / (Math.Pow(2, zoomLevel)));
return Math.Abs(pixels);
}
答案 1 :(得分:0)
对于每个人在现实世界中应用小吃的解决方案szenario:
Math.Cos(double)
需要一个弧度角。如果你得到纬度,请说
Geopoint.Latitude
这是你需要纠正它的度数:
public static double MetersToPixels(double meters, double latitude, double zoomLevel)
{
var pixels = meters / (156543.04 * Math.Cos(Math.PI / 180 * latitude) / (Math.Pow(2, zoomLevel)));
return Math.Abs(pixels);
}
希望这不属于评论,还是我应该编辑零食?