Ejemplo n.º 1
0
 private void RedrawVectorDataLayer()
 {
     _mapVisualizer.UnregisterTilesFrom(_vectorData.Factory);
     _vectorData.UnbindAllEvents();
     _vectorData.UpdateFactorySettings();
     _mapVisualizer.ReregisterTilesTo(_vectorData.Factory);
 }
        /// <summary>
        /// Initializes the map using the mapOptions.
        /// </summary>
        /// <param name="options">Options.</param>
        protected virtual void InitializeMap(MapOptions options)
        {
            Options                  = options;
            _worldHeightFixed        = false;
            _fileSource              = MapboxAccess.Instance;
            _centerLatitudeLongitude = Conversions.StringToLatLon(options.locationOptions.latitudeLongitude);
            _initialZoom             = (int)options.locationOptions.zoom;

            options.scalingOptions.scalingStrategy.SetUpScaling(this);

            options.placementOptions.placementStrategy.SetUpPlacement(this);

            _imagery.UpdateLayer += (object sender, System.EventArgs eventArgs) =>
            {
                LayerUpdateArgs layerUpdateArgs = eventArgs as LayerUpdateArgs;
                if (layerUpdateArgs != null)
                {
                    Debug.Log("<color=red>Image</color>");
                    _mapVisualizer.ReregisterTilesTo(layerUpdateArgs.factory);
                    if (layerUpdateArgs.effectsVectorLayer)
                    {
                        _mapVisualizer.UnregisterTilesFrom(VectorData.Factory);
                        VectorData.UpdateFactorySettings();
                        _mapVisualizer.ReregisterTilesTo(VectorData.Factory);
                    }
                    OnMapRedrawn();
                }
            };

            _terrain.UpdateLayer += (object sender, System.EventArgs eventArgs) =>
            {
                LayerUpdateArgs layerUpdateArgs = eventArgs as LayerUpdateArgs;
                if (layerUpdateArgs != null)
                {
                    Debug.Log("<color=green>Terrain</color>");
                    _mapVisualizer.ReregisterTilesTo(layerUpdateArgs.factory);
                    if (layerUpdateArgs.effectsVectorLayer)
                    {
                        _mapVisualizer.UnregisterTilesFrom(VectorData.Factory);
                        VectorData.UpdateFactorySettings();
                        _mapVisualizer.ReregisterTilesTo(VectorData.Factory);
                    }
                    OnMapRedrawn();
                }
            };

            _vectorData.UpdateLayer += (object sender, System.EventArgs eventArgs) =>
            {
                LayerUpdateArgs layerUpdateArgs = eventArgs as LayerUpdateArgs;
                if (layerUpdateArgs != null)
                {
                    Debug.Log("_vectorData.UpdateLayer");
                    _mapVisualizer.UnregisterTilesFrom(layerUpdateArgs.factory);
                    VectorData.UpdateFactorySettings();
                    _mapVisualizer.ReregisterTilesTo(VectorData.Factory);
                    OnMapRedrawn();
                }
            };

            _mapVisualizer.Initialize(this, _fileSource);
            _tileProvider.Initialize(this);

            SendInitialized();

            _tileProvider.UpdateTileExtent();
        }