2

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

随着 Creator 的秋季更新 16299,Microsoft 添加了MapElementsLayer 类,它似乎非常适合这项工作,但我无法让它工作。当我将它绑定到 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>
4

1 回答 1

4

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

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

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

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

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

于 2017-12-07T06:51:35.877 回答