1

マッピング アプリケーションに ArcGIS API for WPF を使用しています。このマッピング アプリケーションでの目標は、時間を意識したフィーチャ レイヤーを表示し、TimeSlider (ESRI TimeSlider) を使用してレイヤーの時間範囲を変更することです。ESRI が提供する次の 2 つのレイヤーを使用しています。

http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/Earthquakes/Since_1970/MapServer/0

http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/Hurricanes/NOAA_Tracks_1851_2007/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> 

プロパティLayerTimeExtentLayerTimeExtentEndおよび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 ビューのスクリーンショットを次に示します。

ここに画像の説明を入力

4

0 に答える 0