我刚试过这个,但什么也没做。 TrySetViewBoundsAsync一直返回false,除非设置了MapAnimationKind.None,但仍然什么也没做。
我也尝试了TrySetViewAsync,这与上面相同,例如没有
我正在尝试将地图控件的边界设置为我刚绘制的点的路径
路线显示正常,但我无法缩放路线的范围
我可以设置一个手动缩放,但是如果路线很大或很小的话,那就不能做我想要的了。
有什么想法吗?
private async void ShowMapRoute(List<BasicGeoposition> oMapRoute, bool ZoomToRoute = false)
{
if (oMapRoute.Count > 1)
{
MapPolyline oLine = new MapPolyline();
oLine.StrokeColor = Colors.Red;
oLine.StrokeThickness = 5;
oLine.Path = new Geopath(oMapRoute);
myMap.MapElements.Add(oLine);
if (ZoomToRoute)
{
GeoboundingBox oBoundingBox = GeoboundingBox.TryCompute(oMapRoute);
myMap.Center = new Geopoint(oBoundingBox.Center);
bool bSuccess = await myMap.TrySetViewBoundsAsync(oBoundingBox, null, MapAnimationKind.Default);
if (!bSuccess) myMap.ZoomLevel = 9;
}
}
}
我在谷歌地图上手动检查了我的边界框的坐标,它们是正确的。
答案 0 :(得分:0)
在没有任何代码示例的情况下很难看到你真正尝试过的东西......但我总是使用以下代码片段来设置绘制路线时缩放的地图correclty。
因此,基本地理位置列表是要在地图上绘制的实际路线,之后我使用带有计算边界框的TrySetViewBoundsAsync
方法来缩放地图。
public async void SetMapPolyline(List<BasicGeoposition> geoPositions)
{
var polyLine = new MapPolyline { Path = new Geopath(geoPositions), StrokeThickness = 4, StrokeColor = (Color)App.Current.Resources["StravaRedColor"] };
BingMapControl.MapElements.Add(polyLine);
await BingMapControl.TrySetViewBoundsAsync(GeoboundingBox.TryCompute(geoPositions), null, MapAnimationKind.None);
}
答案 1 :(得分:0)
我做了这个
bool bSuccess = false;
while (!bSuccess)
bSuccess = await myMap.TrySetViewBoundsAsync(oBoundingBox, null, MapAnimationKind.Default);
似乎要做的伎俩