簡體   English   中英

Windows Phone 8地圖控件 - 如何獲取地圖邊界

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM