Esempio n. 1
0
 /// <summary>
 /// Default constructor
 /// </summary>
 /// <param name="oMainForm"></param>
 /// <param name="oDAPLayer"></param>
 internal DownloadOptions(Dapple.LayerGeneration.DAPQuadLayerBuilder oDAPLayer)
     : this()
 {
     m_oDAPLayer = oDAPLayer;
      m_oViewedAoi = WorldWind.GeographicBoundingBox.FromQuad(MainForm.WorldWindowSingleton.CurrentAreaOfInterest);
      m_oMapAoi = MainForm.MapAoi;
      m_strMapProjection = MainForm.MapAoiCoordinateSystem;
     if (oDAPLayer != null)
         m_strLayerProjection = MainForm.MontajInterface.GetProjection(m_oDAPLayer.ServerURL, m_oDAPLayer.DatasetName);
 }
Esempio n. 2
0
 /// <summary>
 /// Default constructor
 /// </summary>
 /// <param name="oMainForm"></param>
 /// <param name="oDAPLayer"></param>
 internal DownloadOptions(Dapple.LayerGeneration.DAPQuadLayerBuilder oDAPLayer) : this()
 {
     m_oDAPLayer        = oDAPLayer;
     m_oViewedAoi       = WorldWind.GeographicBoundingBox.FromQuad(MainForm.WorldWindowSingleton.CurrentAreaOfInterest);
     m_oMapAoi          = MainForm.MapAoi;
     m_strMapProjection = MainForm.MapAoiCoordinateSystem;
     if (oDAPLayer != null)
     {
         m_strLayerProjection = MainForm.MontajInterface.GetProjection(m_oDAPLayer.ServerURL, m_oDAPLayer.DatasetName);
     }
 }
Esempio n. 3
0
        /// <summary>
        /// Download all the datasets
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void bDownload_Click(object sender, EventArgs e)
        {
            if (!this.ValidateChildren())
            {
                this.DialogResult = DialogResult.None;
                return;
            }

            if (!DoFilenamePrompt())
            {
                this.DialogResult = DialogResult.None;
                return;
            }

            try
            {
                DownloadCoordinateSystem eCS = DownloadCoordinateSystem.Native;

                if (rbReproject.Checked)
                {
                    eCS = DownloadCoordinateSystem.OriginalMap;
                }


                System.Xml.XmlDocument oExtractDoc     = new System.Xml.XmlDocument();
                System.Xml.XmlElement  oRootElement    = oExtractDoc.CreateElement("geosoft_xml");
                System.Xml.XmlElement  oExtractElement = oExtractDoc.CreateElement("extract");

                oExtractDoc.AppendChild(oRootElement);
                oRootElement.AppendChild(oExtractElement);

                // --- create xml document for each dataset ---

                int iCount = 0;
                for (int count = 0; count < m_oDownloadSettings.Count; count++)
                {
                    System.Xml.XmlElement oDatasetElement;
                    if (m_oDownloadSettings[count] is PersonalDataset)
                    {
                        oDatasetElement = oExtractDoc.CreateElement("personal_dataset");
                    }
                    else
                    {
                        oDatasetElement = oExtractDoc.CreateElement("dataset");
                    }

                    DownloadCoordinateSystem eCSForLayer = eCS;

                    // --- Don't 'reproject to original map' if their projections have different orientations ---
                    if (eCS == DownloadSettings.DownloadCoordinateSystem.OriginalMap && !String.IsNullOrEmpty(m_oDownloadSettings[count].Projection) && !MainForm.MontajInterface.ProjectionsHaveSameOrientation(MainForm.MapAoiCoordinateSystem, m_oDownloadSettings[count].Projection))
                    {
                        eCSForLayer = DownloadSettings.DownloadCoordinateSystem.Native;
                    }

                    switch (m_oDownloadSettings[count].Save(oDatasetElement, cFolderControl.Value, eCSForLayer))
                    {
                    case DownloadOptions.ExtractSaveResult.Cancel:
                        SetActivePage(count);
                        DialogResult = DialogResult.None;
                        return;

                    case DownloadOptions.ExtractSaveResult.Extract:
                        iCount++;
                        oExtractElement.AppendChild(oDatasetElement);
                        break;

                    case DownloadOptions.ExtractSaveResult.Ignore:
                        continue;
                    }
                }

                if (iCount == 0)
                {
                    this.DialogResult = DialogResult.None;
                    return;
                }

#if DEBUG
                System.Xml.XmlElement           oDebugElement = oExtractDoc.CreateElement("debug");
                WorldWind.GeographicBoundingBox oViewAOI      = WorldWind.GeographicBoundingBox.FromQuad(MainForm.WorldWindowSingleton.CurrentAreaOfInterest);
                oDebugElement.SetAttribute("wgs84_west", oViewAOI.West.ToString("f2", CultureInfo.InvariantCulture));
                oDebugElement.SetAttribute("wgs84_south", oViewAOI.South.ToString("f2", CultureInfo.InvariantCulture));
                oDebugElement.SetAttribute("wgs84_east", oViewAOI.East.ToString("f2", CultureInfo.InvariantCulture));
                oDebugElement.SetAttribute("wgs84_north", oViewAOI.North.ToString("f2", CultureInfo.InvariantCulture));
                oExtractElement.AppendChild(oDebugElement);
#endif
                DatasetDisclaimer oDisclaimers = null;
                try
                {
                    oDisclaimers = new DatasetDisclaimer(m_oLayersToDownload, oExtractDoc);
                }
                catch (System.Net.WebException ex)
                {
                    String strErrorMessage = "Could not access disclaimer information for ";
                    if (ex.Data["dataset"] != null)
                    {
                        strErrorMessage += "data layer " + ex.Data["dataset"];
                    }
                    else
                    {
                        strErrorMessage += "one or more data layers";
                    }

                    if (ex.Message != null)
                    {
                        strErrorMessage += ":" + Environment.NewLine + ex.Message;
                    }
                    else
                    {
                        strErrorMessage += ".";
                    }

                    Program.ShowMessageBox(
                        strErrorMessage,
                        "Extract Layers",
                        MessageBoxButtons.OK,
                        MessageBoxDefaultButton.Button1,
                        MessageBoxIcon.Error);
                    this.DialogResult = DialogResult.None;
                    return;
                }
                oDisclaimers.ShowInTaskbar = false;

#if DEBUG
                ExtractDebug oDebug = new ExtractDebug(oExtractDoc);
                oDebug.ShowDialog(this);
#endif

                if (oDisclaimers.HasDisclaimer)
                {
                    if (oDisclaimers.ShowDialog(this) == DialogResult.OK)
                    {
                        m_blLayersDownloaded = DoDownload(oExtractDoc);
                    }
                    else
                    {
                        this.DialogResult = DialogResult.Cancel;
                    }
                }
                else
                {
                    m_blLayersDownloaded = DoDownload(oExtractDoc);
                }
            }
            catch (System.Runtime.Remoting.RemotingException)
            {
                this.DialogResult = DialogResult.Abort;
                return;
            }
        }