我正在为我的地图应用程序使用 ArcGIS API for WPF,我在此地图应用程序中的目标是显示时间感知要素图层,然后使用 TimeSlider (ESRI TimeSlider) 更改图层的时间范围。我正在使用 ESRI 提供的以下两层。
http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/Earthquakes/Since_1970/MapServer/0
我正在使用 ESRI TimeSlider,如下所示。
<esri:TimeSlider x:Name="GTTimeSlider" Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="5"
TimeMode="TimeExtent"
MinimumValue="{Binding LayerTimeExtentStart,Mode=TwoWay}"
MaximumValue="{Binding LayerTimeExtentEnd,Mode=TwoWay}"
Value="{Binding LayerTimeExtent,Mode=TwoWay}"
Intervals="{Binding LayerTimeIntervals, Mode=OneTime}" BorderBrush="White" Background="{x:Null}" >
</esri:TimeSlider>
属性LayerTimeExtent
和是在 ViewModel 中设置LayerTimeExtentEnd
的。这些值是根据我在上面添加到地图时提到的要素图层的 TimeExtent 进行初始化的。使用 DataBinding,我使用以下方法将这些属性绑定到 BaseMap:LayerTimeExtentStart
TimeSlider
Binding myBinding = new Binding("LayerTimeExtent");
myBinding.Source = this;
map.SetBinding(Map.TimeExtentProperty, myBinding);
当我将两个图层同时添加到地图时,就会出现问题。尽管两个图层都初始化了自己的 TimeSliders,但是更改TimeSlider
一个图层对话框的TimeExtent
值会更改另一图层上的值,并且此时两者都在地图上,并且地图TimeExtentProperty
绑定到 的值TimeSlider
。有解决这个问题的方法吗?
这是 TimeSlider 视图的屏幕截图以及添加到底图上的图层。