Пример #1
0
        private void UpdateImageLayers(DrawArgs drawArgs)
        {
            try
            {
                m_LastUpdate = System.DateTime.Now;

                if(m_NwImageLayer != null)
                    m_NwImageLayer.Dispose();

                if(m_NeImageLayer != null)
                    m_NeImageLayer.Dispose();

                if(m_SwImageLayer != null)
                    m_SwImageLayer.Dispose();

                if(m_SeImageLayer != null)
                    m_SeImageLayer.Dispose();

                double centerLatitude = 0.5 * (m_geographicBoundingBox.North + m_geographicBoundingBox.South);
                double centerLongitude = 0.5 * (m_geographicBoundingBox.West + m_geographicBoundingBox.East);

                m_NwImageLayer = CreateImageLayer(m_geographicBoundingBox.North, centerLatitude, m_geographicBoundingBox.West, centerLongitude);

                m_NeImageLayer = CreateImageLayer(m_geographicBoundingBox.North, centerLatitude, centerLongitude, m_geographicBoundingBox.East);

                m_SwImageLayer = CreateImageLayer(centerLatitude, m_geographicBoundingBox.South, m_geographicBoundingBox.West, centerLongitude);

                m_SeImageLayer = CreateImageLayer(centerLatitude, m_geographicBoundingBox.South, centerLongitude, m_geographicBoundingBox.East);

                if(m_NwImageLayer != null)
                {
                    m_NwImageLayer.Initialize(drawArgs);
                }
                if(m_NeImageLayer != null)
                {
                    m_NeImageLayer.Initialize(drawArgs);
                }
                if(m_SwImageLayer != null)
                {
                    m_SwImageLayer.Initialize(drawArgs);
                }
                if(m_SeImageLayer != null)
                {
                    m_SeImageLayer.Initialize(drawArgs);
                }
            }
            catch(Exception ex)
            {
                Log.Write(ex);
            }
        }
Пример #2
0
        public void Initialize(DrawArgs drawArgs)
        {
            try {
                m_Initializing = true;

                double centerLatitude = 0.5*(m_GeoBB.North + m_GeoBB.South);
                double centerLongitude = 0.5*(m_GeoBB.West + m_GeoBB.East);

                m_NwImageLayer = CreateImageLayer(m_GeoBB.North, centerLatitude, m_GeoBB.West, centerLongitude, drawArgs, String.Format("{0}\\{1}\\{2}\\{3:D4}\\{3:D4}_{4:D4}.dds", CachePath, ConfigurationLoader.GetRenderablePathString(m_ShapeTileArgs.ParentShapeFileLayer), Level + 1, 2*Row + 1, 2*Col));

                m_NeImageLayer = CreateImageLayer(m_GeoBB.North, centerLatitude, centerLongitude, m_GeoBB.East, drawArgs, String.Format("{0}\\{1}\\{2}\\{3:D4}\\{3:D4}_{4:D4}.dds", CachePath, ConfigurationLoader.GetRenderablePathString(m_ShapeTileArgs.ParentShapeFileLayer), Level + 1, 2*Row + 1, 2*Col + 1));

                m_SwImageLayer = CreateImageLayer(centerLatitude, m_GeoBB.South, m_GeoBB.West, centerLongitude, drawArgs, String.Format("{0}\\{1}\\{2}\\{3:D4}\\{3:D4}_{4:D4}.dds", CachePath, ConfigurationLoader.GetRenderablePathString(m_ShapeTileArgs.ParentShapeFileLayer), Level + 1, 2*Row, 2*Col));

                m_SeImageLayer = CreateImageLayer(centerLatitude, m_GeoBB.South, centerLongitude, m_GeoBB.East, drawArgs, String.Format("{0}\\{1}\\{2}\\{3:D4}\\{3:D4}_{4:D4}.dds", CachePath, ConfigurationLoader.GetRenderablePathString(m_ShapeTileArgs.ParentShapeFileLayer), Level + 1, 2*Row, 2*Col + 1));

                if (m_NwImageLayer != null) {
                    m_NwImageLayer.Initialize(drawArgs);
                }
                if (m_NeImageLayer != null) {
                    m_NeImageLayer.Initialize(drawArgs);
                }
                if (m_SwImageLayer != null) {
                    m_SwImageLayer.Initialize(drawArgs);
                }
                if (m_SeImageLayer != null) {
                    m_SeImageLayer.Initialize(drawArgs);
                }
            }
            catch (Exception ex) {
                Log.Write(ex);
            }
            finally {
                m_Initializing = false;
                if (m_Disposing) {
                    Dispose();
                    m_Initialized = false;
                }
                else {
                    m_Initialized = true;
                }
            }
        }
Пример #3
0
		private void UpdateImageLayers(DrawArgs drawArgs)
		{
			try
			{
				m_LastUpdate = System.DateTime.Now;

				if(m_NwImageLayer != null)
					m_NwImageLayer.Dispose();
			
				if(m_NeImageLayer != null)
					m_NeImageLayer.Dispose();
			
				if(m_SwImageLayer != null)
					m_SwImageLayer.Dispose();

				if(m_SeImageLayer != null)
					m_SeImageLayer.Dispose();

				double centerLatitude = 0.5 * (m_geographicBoundingBox.North + m_geographicBoundingBox.South);
				double centerLongitude = 0.5 * (m_geographicBoundingBox.West + m_geographicBoundingBox.East);

				m_NwImageLayer = CreateImageLayer(m_geographicBoundingBox.North, centerLatitude, m_geographicBoundingBox.West, centerLongitude, drawArgs,
					String.Format("{0}\\{1}\\{2}\\{3:D4}\\{3:D4}_{4:D4}.dds",
					null,//ShapeTile.CachePath,
					"R",//ConfigurationLoader.GetRenderablePathString(m_parentProjectedLayer),
					Level + 1,
					2 * Row + 1,
					2 * Col));

				m_NeImageLayer = CreateImageLayer(m_geographicBoundingBox.North, centerLatitude, centerLongitude, m_geographicBoundingBox.East, drawArgs,
					String.Format("{0}\\{1}\\{2}\\{3:D4}\\{3:D4}_{4:D4}.dds",
					null,//ShapeTile.CachePath,
					"R",//ConfigurationLoader.GetRenderablePathString(m_parentProjectedLayer),
					Level + 1,
					2 * Row + 1,
					2 * Col + 1));

				m_SwImageLayer = CreateImageLayer(centerLatitude, m_geographicBoundingBox.South, m_geographicBoundingBox.West, centerLongitude, drawArgs,
					String.Format("{0}\\{1}\\{2}\\{3:D4}\\{3:D4}_{4:D4}.dds",
					null,//ShapeTile.CachePath,
					"R",//ConfigurationLoader.GetRenderablePathString(m_parentProjectedLayer),
					Level + 1,
					2 * Row,
					2 * Col));

				m_SeImageLayer = CreateImageLayer(centerLatitude, m_geographicBoundingBox.South, centerLongitude, m_geographicBoundingBox.East, drawArgs,
					String.Format("{0}\\{1}\\{2}\\{3:D4}\\{3:D4}_{4:D4}.dds",
					null,//ShapeTile.CachePath,
					"R",//ConfigurationLoader.GetRenderablePathString(m_parentProjectedLayer),
					Level + 1,
					2 * Row,
					2 * Col + 1));

				if(m_NwImageLayer != null)
				{
					m_NwImageLayer.Initialize(drawArgs);
				}
				if(m_NeImageLayer != null)
				{
					m_NeImageLayer.Initialize(drawArgs);
				}
				if(m_SwImageLayer != null)
				{
					m_SwImageLayer.Initialize(drawArgs);
				}
				if(m_SeImageLayer != null)
				{
					m_SeImageLayer.Initialize(drawArgs);
				}
			}
			catch(Exception ex)
			{
				Log.Write(ex);
			}
		}
Пример #4
0
		public void Initialize(DrawArgs drawArgs)
		{
			try
			{
				m_Initializing = true;

				double centerLatitude = 0.5 * (m_GeoBB.North + m_GeoBB.South);
				double centerLongitude = 0.5 * (m_GeoBB.West + m_GeoBB.East);

				m_NwImageLayer = CreateImageLayer(m_GeoBB.North, centerLatitude, m_GeoBB.West, centerLongitude, drawArgs);
				m_NeImageLayer = CreateImageLayer(m_GeoBB.North, centerLatitude, centerLongitude, m_GeoBB.East, drawArgs);
				m_SwImageLayer = CreateImageLayer(centerLatitude, m_GeoBB.South, m_GeoBB.West, centerLongitude, drawArgs);
				m_SeImageLayer = CreateImageLayer(centerLatitude, m_GeoBB.South, centerLongitude, m_GeoBB.East, drawArgs);

				if(m_NwImageLayer != null)
				{
					m_NwImageLayer.Initialize(drawArgs);
				}
				if(m_NeImageLayer != null)
				{
					m_NeImageLayer.Initialize(drawArgs);
				}
				if(m_SwImageLayer != null)
				{
					m_SwImageLayer.Initialize(drawArgs);
				}
				if(m_SeImageLayer != null)
				{
					m_SeImageLayer.Initialize(drawArgs);
				}
			}
			catch(Exception ex)
			{
				Log.Write(ex);
			}
			finally
			{
				m_Initializing = false;
				if(m_Disposing)
				{
					Dispose();
					m_Initialized = false;
				}
				else
				{
					m_Initialized = true;
				}
				
			}
		}
Пример #5
0
        public void Initialize(DrawArgs drawArgs)
        {
            try
            {
                m_Initializing = true;

                double centerLatitude  = 0.5 * (m_GeoBB.North + m_GeoBB.South);
                double centerLongitude = 0.5 * (m_GeoBB.West + m_GeoBB.East);

                m_NwImageLayer = CreateImageLayer(m_GeoBB.North, centerLatitude, m_GeoBB.West, centerLongitude, drawArgs,
                                                  String.Format("{0}\\{1}\\{2}\\{3:D4}\\{3:D4}_{4:D4}.dds",
                                                                ShapeTile.CachePath,
                                                                ConfigurationLoader.GetRenderablePathString(m_ShapeTileArgs.ParentShapeFileLayer),
                                                                Level + 1,
                                                                2 * Row + 1,
                                                                2 * Col));

                m_NeImageLayer = CreateImageLayer(m_GeoBB.North, centerLatitude, centerLongitude, m_GeoBB.East, drawArgs,
                                                  String.Format("{0}\\{1}\\{2}\\{3:D4}\\{3:D4}_{4:D4}.dds",
                                                                ShapeTile.CachePath,
                                                                ConfigurationLoader.GetRenderablePathString(m_ShapeTileArgs.ParentShapeFileLayer),
                                                                Level + 1,
                                                                2 * Row + 1,
                                                                2 * Col + 1));

                m_SwImageLayer = CreateImageLayer(centerLatitude, m_GeoBB.South, m_GeoBB.West, centerLongitude, drawArgs,
                                                  String.Format("{0}\\{1}\\{2}\\{3:D4}\\{3:D4}_{4:D4}.dds",
                                                                ShapeTile.CachePath,
                                                                ConfigurationLoader.GetRenderablePathString(m_ShapeTileArgs.ParentShapeFileLayer),
                                                                Level + 1,
                                                                2 * Row,
                                                                2 * Col));

                m_SeImageLayer = CreateImageLayer(centerLatitude, m_GeoBB.South, centerLongitude, m_GeoBB.East, drawArgs,
                                                  String.Format("{0}\\{1}\\{2}\\{3:D4}\\{3:D4}_{4:D4}.dds",
                                                                ShapeTile.CachePath,
                                                                ConfigurationLoader.GetRenderablePathString(m_ShapeTileArgs.ParentShapeFileLayer),
                                                                Level + 1,
                                                                2 * Row,
                                                                2 * Col + 1));


                if (m_NwImageLayer != null)
                {
                    m_NwImageLayer.Initialize(drawArgs);
                }
                if (m_NeImageLayer != null)
                {
                    m_NeImageLayer.Initialize(drawArgs);
                }
                if (m_SwImageLayer != null)
                {
                    m_SwImageLayer.Initialize(drawArgs);
                }
                if (m_SeImageLayer != null)
                {
                    m_SeImageLayer.Initialize(drawArgs);
                }
            }
            catch (Exception ex)
            {
                Utility.Log.Write(ex);
            }
            finally
            {
                m_Initializing = false;
                if (m_Disposing)
                {
                    Dispose();
                    m_Initialized = false;
                }
                else
                {
                    m_Initialized = true;
                }
            }
        }
        private void UpdateImageLayers(DrawArgs drawArgs)
        {
            try
            {
                m_LastUpdate = System.DateTime.Now;

                if (m_NwImageLayer != null)
                {
                    m_NwImageLayer.Dispose();
                }

                if (m_NeImageLayer != null)
                {
                    m_NeImageLayer.Dispose();
                }

                if (m_SwImageLayer != null)
                {
                    m_SwImageLayer.Dispose();
                }

                if (m_SeImageLayer != null)
                {
                    m_SeImageLayer.Dispose();
                }

                double centerLatitude  = 0.5 * (m_geographicBoundingBox.North + m_geographicBoundingBox.South);
                double centerLongitude = 0.5 * (m_geographicBoundingBox.West + m_geographicBoundingBox.East);

                m_NwImageLayer = CreateImageLayer(m_geographicBoundingBox.North, centerLatitude, m_geographicBoundingBox.West, centerLongitude, drawArgs,
                                                  String.Format("{0}\\{1}\\{2}\\{3:D4}\\{3:D4}_{4:D4}.dds",
                                                                null, //ShapeTile.CachePath,
                                                                "R",  //ConfigurationLoader.GetRenderablePathString(m_parentProjectedLayer),
                                                                Level + 1,
                                                                2 * Row + 1,
                                                                2 * Col));

                m_NeImageLayer = CreateImageLayer(m_geographicBoundingBox.North, centerLatitude, centerLongitude, m_geographicBoundingBox.East, drawArgs,
                                                  String.Format("{0}\\{1}\\{2}\\{3:D4}\\{3:D4}_{4:D4}.dds",
                                                                null, //ShapeTile.CachePath,
                                                                "R",  //ConfigurationLoader.GetRenderablePathString(m_parentProjectedLayer),
                                                                Level + 1,
                                                                2 * Row + 1,
                                                                2 * Col + 1));

                m_SwImageLayer = CreateImageLayer(centerLatitude, m_geographicBoundingBox.South, m_geographicBoundingBox.West, centerLongitude, drawArgs,
                                                  String.Format("{0}\\{1}\\{2}\\{3:D4}\\{3:D4}_{4:D4}.dds",
                                                                null, //ShapeTile.CachePath,
                                                                "R",  //ConfigurationLoader.GetRenderablePathString(m_parentProjectedLayer),
                                                                Level + 1,
                                                                2 * Row,
                                                                2 * Col));

                m_SeImageLayer = CreateImageLayer(centerLatitude, m_geographicBoundingBox.South, centerLongitude, m_geographicBoundingBox.East, drawArgs,
                                                  String.Format("{0}\\{1}\\{2}\\{3:D4}\\{3:D4}_{4:D4}.dds",
                                                                null, //ShapeTile.CachePath,
                                                                "R",  //ConfigurationLoader.GetRenderablePathString(m_parentProjectedLayer),
                                                                Level + 1,
                                                                2 * Row,
                                                                2 * Col + 1));

                if (m_NwImageLayer != null)
                {
                    m_NwImageLayer.Initialize(drawArgs);
                }
                if (m_NeImageLayer != null)
                {
                    m_NeImageLayer.Initialize(drawArgs);
                }
                if (m_SwImageLayer != null)
                {
                    m_SwImageLayer.Initialize(drawArgs);
                }
                if (m_SeImageLayer != null)
                {
                    m_SeImageLayer.Initialize(drawArgs);
                }
            }
            catch (Exception ex)
            {
                Log.Write(ex);
            }
        }
Пример #7
0
        public override void Update(WorldWind.DrawArgs drawArgs)
        {
            lock (this)
            {
                if (m_oLayer != null)
                {
                    if (m_oGroundOverlay.Icon.ViewRefreshMode == KMLViewRefreshMode.onStop)
                    {
                        double dTimeStopped;
                        if (drawArgs.CurrentRoI.Equals(m_oLastAoI))
                        {
                            dTimeStopped = (DateTime.Now - m_oLastAoIChangeTime).Seconds;
                        }
                        else
                        {
                            dTimeStopped = 0.0;
                            m_oLastAoI = drawArgs.CurrentRoI;
                            m_oLastAoIChangeTime = DateTime.Now;
                        }

                        if (dTimeStopped > m_oGroundOverlay.Icon.ViewRefreshTime && !m_oLayerAoI.Equivalent(drawArgs.CurrentRoI, 1e-6))
                        {
                            try
                            {
                                File.Delete(m_strImageFilename);
                            }
                            catch (IOException) { return; }
                            GeographicBoundingBox oRenderBox = GetNewBox(drawArgs.CurrentRoI, m_oGroundOverlay.Icon.ViewBoundScale);

                            m_oLayer = new ImageLayer(
                                m_oGroundOverlay.Name,
                                drawArgs.CurrentWorld,
                                m_oGroundOverlay.Altitude,
                                m_strImageFilename,
                                oRenderBox.South,
                                oRenderBox.North,
                                oRenderBox.West,
                                oRenderBox.East,
                                (byte)(m_oGroundOverlay.Color.A * ((double)m_opacity / (double)(byte.MaxValue))),
                                drawArgs.CurrentWorld.TerrainAccessor);

                            if (m_oGroundOverlay.Icon.IsLocalFile)
                            {
                                m_oLayer.ImagePath = Path.Combine(m_strKMLDirectory, m_oGroundOverlay.Icon.HRef);
                            }
                            else
                            {
                                m_oLayer.ImageUrl = m_oGroundOverlay.Icon.GetUri(oRenderBox.West, oRenderBox.South, oRenderBox.East, oRenderBox.North);
                            }
                            m_oLayer.Initialize(drawArgs);
                            m_oLayerAoI = drawArgs.CurrentRoI.Clone() as GeographicBoundingBox;
                        }
                    }

                    m_oLayer.Update(drawArgs);
                }
            }
        }