Skip to main content
 首页 » 编程设计

c#之Windows Phone 8.1 上的必应 map

2024年02月01日34jillzhang

我正在尝试在 Windows Phone 8.1 应用程序中更改 map 的视口(viewport)。我必须设置中心(有效)和左下/右上坐标来设置 map 的边界,但我只有 ZoomLevel 属性无法帮助我精确设置 map 的边界。

这是我的:

XAML

xmlns:Maps="using:Windows.UI.Xaml.Controls.Maps" 
... 
<Maps:MapControl x:Name="myMap" MapServiceToken="<token>"/> 

代码

this.myMap.Center = new Geopoint(new BasicGeoposition() { Latitude = 46.85, Longitude = 8.94}); 

现在我想设置右上角和左下角来设置边界。我看到了这篇文章HERE但它对我不起作用.. ConvertGeoCoordinateToViewportPoint 不存在于命名空间 Windows.UI.Xaml.Controls.Maps 中,我不知道为什么。

谢谢。

请您参考如下方法:

您有一个特定的方法来设置当前 MapControl 的边界,即 TrySetViewBoundsAsync,请参阅:

http://msdn.microsoft.com/en-us/library/windowsphone/develop/dn637065.aspx

您可能对 GeoboundingBox 类感兴趣:

http://msdn.microsoft.com/en-us/library/windowsphone/develop/windows.devices.geolocation.geoboundingbox.aspx

这是一个示例( map 是您的 MapControl):

List<BasicGeoposition> basicPositions = new List<BasicGeoposition>(); 
basicPositions.Add(new BasicGeoposition() { Latitude = 50, Longitude = 3 }); 
basicPositions.Add(new BasicGeoposition() { Latitude = 55, Longitude = 8 }); 
basicPositions.Add(new BasicGeoposition() { Latitude = 42, Longitude = 0 }); 
 
this.Map.TrySetViewBoundsAsync(GeoboundingBox.TryCompute(basicPositions), null, MapAnimationKind.Default);