1

マップがズームインまたはズームアウトしたときに、マップ オーバーレイ コンテンツをスケーリングしたいと考えています。マップのズームは、マップの ZoomLevel によって制御されます。MapOverlay の画像をマップと同じ量だけ拡大縮小する式を知っている人はいますか?

私は次のようなものを探しています

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

2 に答える 2

0

現実世界のシナリオでスナックのソリューションを適用するすべての人のために:

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

これがコメントに属していないことを願っていますか、またはsnackysの投稿を編集する必要がありますか?

于 2014-10-10T10:43:13.633 に答える
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);
    }
于 2013-10-27T02:23:03.767 に答える