[英]Windows Phone 8 Map control - how to get map bounds
我正在使用全新的Windows Phone 8 Map控件,但遇到了一個問題:我需要獲取地圖邊界的LocationRectangle,換句話說就是Latitude跨度和經度跨度。
使用Bing Maps控件,您可以執行以下操作:
LocationRect bounds = map.Bounds;
...但是,這個新控件中似乎沒有相關字段。 任何人都可以提供幫助,或者我是否需要對各種縮放級別進行反向工程並根據中心點,縮放級別和像素高度/寬度進行處理?
您可以使用視口轉換方法,例如:
GeoCoordinate topLeft = yourMapInstance.ConvertViewportPointToGeoCoordinate(new Point(0, 0));
GeoCoordinate bottomRight =
yourMapInstance.ConvertViewportPointToGeoCoordinate(new Point(mapSize.Width, mapSize.Height));
return LocationRectangle.CreateBoundingRectangle(new[] { topLeft, bottomRight });
可能你可以直接使用mapControl實例的renderSize,但為了確保運行時的正確尺寸,我建議你去監聽“SizeChanged”事件。 並且檢查mapsize值不是0或Infiniteis也可能是一個好主意。
為了清楚起見,如果你已經為WP7創建了大型應用程序,你仍然可以使用WP8中的原始Bing地圖(雖然它們已被棄用)。
你可以在這里找到帶有Bing Maps for WP8的圖書館:
C:\\ Program Files(x86)\\ Microsoft SDKs \\ Windows Phone \\ v8.0 \\ Libraries
這對您來說是一個可行的解決方案,還是想切換到新地圖?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.