Ejemplo n.º 1
0
        public MapDataStore(IMapDataProvider mapDataProvider, IPathResolver pathResolver, ITrace trace)
        {
            _mapDataProvider = mapDataProvider;
            _mapDataLoader   = new MapDataLoader(pathResolver, trace);
            _pathResolver    = pathResolver;
            _trace           = trace;

            _mapDataProvider
            .ObserveOn(Scheduler.ThreadPool)
            .Subscribe(value =>
            {
                // we have map data in store.
                if (String.IsNullOrEmpty(value.Item2))
                {
                    _mapDataLoader.OnNext(value.Item1);
                }
                else
                {
                    Add(_mapDataStorageType, value.Item2, value.Item1.Stylesheet, value.Item1.QuadKey)
                    .Subscribe(progress => { }, () => _mapDataLoader.OnNext(value.Item1));
                }
            });

            _mapDataLoader.Subscribe <MapData>(u => _dataObservers.ForEach(o => o.OnNext(u)));
            _mapDataLoader.Subscribe <Tile>(t => _tileObservers.ForEach(o => o.OnNext(t)));
        }
Ejemplo n.º 2
0
 public MapDataStore(IMapDataProvider mapDataProvider, IMapDataLibrary mapDataLibrary)
 {
     _mapDataProvider = mapDataProvider;
     _mapDataLibrary  = mapDataLibrary;
     _mapDataProvider
     .ObserveOn(Scheduler.ThreadPool)
     .Subscribe(value =>
     {
         // we have map data in store.
         if (String.IsNullOrEmpty(value.Item2))
         {
             _mapDataLibrary.Get(value.Item1, _dataObservers);
         }
         else
         {
             Add(_mapDataStorageType, value.Item2, value.Item1.Stylesheet, value.Item1.QuadKey)
             .Subscribe(progress => { },
                        () => _mapDataLibrary.Get(value.Item1, _dataObservers));
         }
     });
 }
Ejemplo n.º 3
0
        public MapDataStore(IMapDataProvider mapDataProvider, IMapDataLibrary mapDataLibrary)
        {
            _mapDataLibrary = mapDataLibrary;

            _mapDataProvider = mapDataProvider;
            _mapDataProvider
            .ObserveOn(Scheduler.ThreadPool)
            .Subscribe(value =>
            {
                // We have map data in store.
                if (String.IsNullOrEmpty(value.Item2))
                {
                    _mapDataLibrary
                    .Get(value.Item1, _dataObservers)
                    .Subscribe(_ => _tileObservers.ForEach(t => t.OnNext(value.Item1)));
                }
                else
                {
                    // NOTE store data in the first registered store
                    AddTo(_storageKeys.First(), value.Item2, value.Item1.Stylesheet, value.Item1.QuadKey, value.Item1.CancelationToken)
                    .Subscribe(progress => { }, () => _mapDataLibrary.Get(value.Item1, _dataObservers));
                }
            });
        }