在WindowsPhone8中缩放MapOvleray

本文关键字:MapOvleray 缩放 WindowsPhone8 | 更新日期: 2023-09-27 18:36:30

我想在放大或缩小地图时缩放地图叠加层内容。地图缩放由地图的缩放级别控制。有谁知道一个公式,可以将地图叠加中的图像缩放到与地图相同的数量?

我正在寻找类似的东西

public void OnZoomLevelChanged()
{
    img.Width = initialWidth * Map.ZoomLevel * [someRatioFactor]
    img.Height= initialHeight * Map.ZoomLevel * [someRatioFactor]
}

在WindowsPhone8中缩放MapOvleray

有关缩放/缩放级别的详细信息,请参阅此处

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);
    }

对于在现实世界中应用零食解决方案的每个人 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);
}

希望这不属于评论,或者我应该编辑零食帖子?