public virtual void StartDownload()
        {
            // Offline check
            if (World.Settings.WorkOffline)
            {
                return;
            }

            Log.Write(Log.Levels.Debug, "GSDR", "Starting download for " + m_url);
            //			Log.Write(Log.Levels.Debug, "GSDR", "to be stored in "+this.m_imageStore.GetLocalPath(QuadTile));

            MFW3D.Net.Wms.WmsImageStore  wmsImageStore       = m_imageStore as MFW3D.Net.Wms.WmsImageStore;
            System.Net.NetworkCredential downloadCredentials = null;

            if (wmsImageStore != null)
            {
                downloadCredentials = new System.Net.NetworkCredential(wmsImageStore.Username, wmsImageStore.Password);
            }

            QuadTile.IsDownloadingImage = true;
            download = new WebDownload(m_url, downloadCredentials);

            download.DownloadType      = DownloadType.Wms;
            download.SavedFilePath     = m_localFilePath + ".tmp";
            download.ProgressCallback += new DownloadProgressHandler(UpdateProgress);
            download.CompleteCallback += new MFW3D.Net.DownloadCompleteHandler(DownloadComplete);
            download.BackgroundDownloadFile();
        }
Exemplo n.º 2
0
        void WorldWindow_MouseUp(object sender, MouseEventArgs e)
        {
            if (e.Button != MouseButtons.Right)
            {
                return;
            }

            if (m_Form == null)
            {
                return;
            }

            if (!m_Form.Visible)
            {
                return;
            }

            if (m_Form.KeyLayer == null)
            {
                return;
            }

            QuadTileSet qts = m_Form.KeyLayer;

            MFW3D.Net.Wms.WmsImageStore wms = (MFW3D.Net.Wms.WmsImageStore)qts.ImageStores[0];

            string requestUrl = wms.ServerGetMapUrl;

            string[] layerNameParts = wms.WMSLayerName.Split('&');
            string   layerName      = layerNameParts[0];
            string   getMapParts    =
                requestUrl += "?QUERY_LAYERS=" + layerName + "&SERVICE=WMS&VERSION=" + wms.Version + "&REQUEST=GetFeatureInfo&SRS=EPSG:4326&FEATURE_COUNT=10&INFO_FORMAT=text/plain&EXCEPTIONS=text/plain";

            // From Servir-Viz...
            Angle  LowerLeftX;
            Angle  LowerLeftY;
            Angle  UpperRightX;
            Angle  UpperRightY;
            string minx, miny, maxx, maxy;

            char[] degreeChar = { '?' };

            int mouseX = e.X;
            int mouseY = e.Y;

            int queryBoxWidth  = 2 * queryBoxOffset + 1;
            int queryBoxHeight = 2 * queryBoxOffset + 1;

            int queryX = queryBoxOffset + 1;
            int queryY = queryBoxOffset + 1;

            drawArgs.WorldCamera.PickingRayIntersectionWithTerrain(mouseX - queryBoxOffset, mouseY + queryBoxOffset, out LowerLeftY, out LowerLeftX, drawArgs.CurrentWorld);
            drawArgs.WorldCamera.PickingRayIntersectionWithTerrain(mouseX + queryBoxOffset, mouseY - queryBoxOffset, out UpperRightY, out UpperRightX, drawArgs.CurrentWorld);

            //drawArgs.WorldCamera.PickingRayIntersectionWithTerrain(0, 0 + drawArgs.screenHeight, out LowerLeftY, out LowerLeftX, drawArgs.CurrentWorld);
            //drawArgs.WorldCamera.PickingRayIntersectionWithTerrain(drawArgs.screenWidth, 0, out UpperRightY, out UpperRightX, drawArgs.CurrentWorld);

            minx = LowerLeftX.ToString().Contains("NaN") ? "-180.0" : LowerLeftX.ToString().TrimEnd(degreeChar);
            miny = LowerLeftY.ToString().Contains("NaN") ? "-90.0" : LowerLeftY.ToString().TrimEnd(degreeChar);
            maxx = UpperRightX.ToString().Contains("NaN") ? "180.0" : UpperRightX.ToString().TrimEnd(degreeChar);
            maxy = UpperRightY.ToString().Contains("NaN") ? "90.0" : UpperRightY.ToString().TrimEnd(degreeChar);

            // request has to include a bbox and the requested pixel coords relative to that box...
            requestUrl += "&layers=" + wms.WMSLayerName;
            requestUrl += "&WIDTH=" + queryBoxWidth.ToString() + "&HEIGHT=" + queryBoxHeight.ToString();
            requestUrl += "&BBOX=" + minx + "," + miny + "," + maxx + "," + maxy;
            requestUrl += "&X=" + queryX.ToString() + "&Y=" + queryY.ToString();

            if (!World.Settings.WorkOffline)
            {
                MFW3D.Net.WebDownload dl = new MFW3D.Net.WebDownload(requestUrl);
                System.IO.FileInfo    fi = new System.IO.FileInfo("GetFeatureInfo_response.txt");
                dl.DownloadFile(fi.FullName);
                //dl.SavedFilePath = fi.FullName;
                //dl.BackgroundDownloadFile(GetFeatureDlComplete);


                if (World.Settings.UseInternalBrowser)
                {
                    SplitContainer          sc      = (SplitContainer)drawArgs.parentControl.Parent.Parent;
                    InternalWebBrowserPanel browser = (InternalWebBrowserPanel)sc.Panel1.Controls[0];
                    browser.NavigateTo(fi.FullName);
                }
                else
                {
                    System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo();
                    psi.FileName        = fi.FullName;
                    psi.Verb            = "open";
                    psi.UseShellExecute = true;

                    psi.CreateNoWindow = true;
                    System.Diagnostics.Process.Start(psi);
                }
            }
        }