2

我正在使用全新的 Windows Phone 8 地图控件,但遇到了一个问题:我需要获取地图边界的 LocationRectangle,即纬度跨度和经度跨度。

使用 Bing 地图控件,您可以执行以下操作:

 LocationRect bounds = map.Bounds;

...但是,这个新控件中似乎没有相关字段。任何人都可以提供帮助,还是我需要对各种缩放级别进行逆向工程并根据中心点、缩放级别和像素高度/宽度进行计算?

4

2 回答 2

8

您可以使用视口转换方法,例如:

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 或 Infinite 可能也是一个好主意。

于 2012-11-02T09:52:39.603 回答
0

需要说明的是,如果您已经为 WP7 创建了大型应用程序,您仍然可以在 WP8 中使用原始 Bing 地图(尽管它们已被弃用)。
您可以在此处找到带有 WP8 的 Bing 地图的库:

C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v8.0\Libraries

这对您来说是一个可行的解决方案,还是您仍然想切换到新地图?

于 2012-11-01T21:36:02.563 回答