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

时间:2017-12-06 12:53:47

标签: uwp win-universal-app uwp-xaml uwp-maps

我在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>

1 个答案:

答案 0 :(得分: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属性。