マッピング アプリケーションに ArcGIS API for WPF を使用しています。このマッピング アプリケーションでの目標は、時間を意識したフィーチャ レイヤーを表示し、TimeSlider (ESRI TimeSlider) を使用してレイヤーの時間範囲を変更することです。ESRI が提供する次の 2 つのレイヤーを使用しています。
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
、LayerTimeExtentEnd
およびLayerTimeExtentStart
は、 の ViewModel で設定されTimeSlider
ます。これらの値は、マップに追加されるときに前述したフィーチャ レイヤーの TimeExtent に基づいて初期化されます。DataBinding を使用して、以下を使用してこれらのプロパティを BaseMap にバインドしました。
Binding myBinding = new Binding("LayerTimeExtent");
myBinding.Source = this;
map.SetBinding(Map.TimeExtentProperty, myBinding);
両方のレイヤーを同時にマップに追加すると、問題が発生します。両方のレイヤが独自の TimeSliders を初期化しますがTimeSlider
、一方のレイヤ ダイアログ ボックスで のTimeExtent
値を変更すると、もう一方のレイヤの値が変更され、その時点で両方がマップ上にあり、マップTimeExtentProperty
は の値にバインドされTimeSlider
ます。この問題の回避策はありますか?
ベースマップにレイヤーが追加された TimeSlider ビューのスクリーンショットを次に示します。