Пример #1
0
        public MapMarkerProvider(ILayer mapMarkerLayer, BoundingBox boundingBox, IMarkerVisibilityManager visibilityManager, ModuleMarker makerModule)
        {
            MapMarkerLayer     = mapMarkerLayer;
            _boundingBox       = boundingBox;
            _visibilityManager = visibilityManager;
            _makerModule       = makerModule;
            //this._boundingBox = MemoryProvider.GetExtents(this.Features);
            _makerModule.markers.CollectionChanged += (a, e) => OnMarkersUpdated();

            _makerModule.PropertyChanged += (a, e) => //#TODO probably don't need this anymore, same on GPSTracker
            {
                if (e.PropertyName == nameof(ModuleMarker.markers) && _makerModule.markers != null)
                {
                    _makerModule.markers.CollectionChanged += (b, c) => OnMarkersUpdated();
                    OnMarkersUpdated();
                }
            };

            _visibilityManager.OnUpdated += () =>
            {
                MapMarkerLayer.DataHasChanged();
            };


            MapMarkerLayer.DataHasChanged();

            OnMarkersUpdated();
        }
Пример #2
0
        public MapMarkerProvider(ILayer mapMarkerLayer, BoundingBox boundingBox, IMarkerVisibilityManager visibilityManager)
        {
            MapMarkerLayer     = mapMarkerLayer;
            _boundingBox       = boundingBox;
            _visibilityManager = visibilityManager;
            _makerModule       = GameState.Instance.marker;
            //this._boundingBox = MemoryProvider.GetExtents(this.Features);
            _makerModule.markers.CollectionChanged += (a, e) => OnMarkersUpdated();

            _makerModule.PropertyChanged += (a, e) => //#TODO probably don't need this anymore, same on GPSTracker
            {
                if (e.PropertyName == nameof(ModuleMarker.markers) && _makerModule.markers != null)
                {
                    _makerModule.markers.CollectionChanged += (b, c) => OnMarkersUpdated();
                    OnMarkersUpdated();
                }
            };

            _visibilityManager.OnUpdated += () =>
            {
                MapMarkerLayer.DataHasChanged();
            };

            AppConfig.Instance.GetSection <Map>("Map").PropertyChanged += (x, y) =>
            {
                if (y.PropertyName == nameof(Map.TransparentOffchannelMarkers))
                {
                    UpdateForegroundChannelTransparency();
                }
            };


            MapMarkerLayer.DataHasChanged();

            OnMarkersUpdated();
        }