UWP Mapcontrol - 绑定到不同MapElement的集合并将它们排列在图层中

问题描述 投票:1回答:1

我在UWP MapControl上显示几种不同类型的MapElements,并在用户使用地图时定期更新它们的位置,大小等。目前我在代码中完成所有这些工作。我想找到一种方便的方法来绑定多个不同的MapElements集合,因为那时我需要维护的代码更少。

随着Creator的秋季更新16299,微软已经添加了MapElementsLayer class,,它似乎是完美的工作,但我无法让它工作。当我将它绑定到MapElement3D的ObservableCollection时,我看不到它们中的任何一个出现在地图上。我究竟做错了什么?

<Maps:MapControl 
        x:Name="MainMap"           
        MapProjection="Globe"
        ZoomLevel="15.5"

        <Maps:MapElementsLayer x:Name="Cars"  MapElements="{x:Bind _VehicleCollection, Mode=OneWay}"  />

 </Maps:MapControl>
uwp win-universal-app uwp-xaml uwp-maps
1个回答
3
投票

我想找到一种方便的方法来绑定多个不同的MapElements集合,因为那时我需要维护的代码更少。

如您所述,地图分层API可以帮助表示可以绑定数据的地图数据集合。与现有的MapControl.MapElements API不同,它可以用于独立操作元素组作为一个单元或指定一个联合目的。

但是您需要使用MapControl.Layers将数据集合绑定到地图。这是使用MapElements集合无法做到的事情。有关地图分层API以及如何操作的更多详细信息,请参阅Working with layers。例如:

<Maps:MapControl
    x:Name="myMap"
    Layers="{x:Bind ViewModel.LandmarkLayer}"
    MapProjection="Globe"
    MapServiceToken="Your token" />

您需要将图层集合绑定到MapControl.Layers属性。

© www.soinside.com 2019 - 2024. All rights reserved.