【问题标题】:Bing Map on Windows Phone 8.1Windows Phone 8.1 上的必应地图
【发布时间】:2014-06-22 22:00:40
【问题描述】:

我正在尝试在 Windows phone 8.1 应用程序中更改地图的视口。我必须设置中心(它可以工作)和 lowerLeft/upperRight 坐标来设置地图的边界,但我只有 ZoomLevel 属性不能帮助我精确地设置地图的边界。

这就是我所拥有的:

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,我不知道为什么。

谢谢。

【问题讨论】:

    标签: c# bing-maps windows-phone-8.1


    【解决方案1】:

    您有一个特定的方法来设置当前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

    这是一个例子(地图是你的地图控制):

    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);
    

    【讨论】:

    • 不客气。此外,不要忘记使用此 TrySetViewBoundsAsync 方法的第二个参数,因为在要获取的视图上设置填充非常有用。干杯。
    • 我刚试过这个,它什么也没做。 TrySetViewBoundsAsync 一直返回 false,除非设置了 MapAnimationKind.None,但仍然什么都不做
    猜你喜欢
    • 1970-01-01
    • 2017-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多