2013-10-23 15 views
1

我想在地圖放大或縮小時縮放地圖疊加內容。 地圖縮放由地圖的縮放級別控制。 有人知道一個公式,該公式可以將MapOverlay中的圖像縮放爲與地圖相同的數量?在WindowsPhone8中縮放MapOvleray

我在尋找類似

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

回答

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

太棒了!非常感謝你,你救了我的命! – user2078645

0

對於每個人都適用的snacky的解決方案在現實世界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); 
} 

希望這doesn't屬於意見,或者我應該已經編輯snackys後?