예제 #1
0
        void DoSaveAs()
        {
            FileAccessRequest far = new FileAccessRequest()
            {
                IsForReading         = false,
                IsMultiSelect        = false,
                ExtensionFilter      = "KML Documents (*.kml)|*.kml|All files (*.*)|*.*",
                ExtensionFilterIndex = 1,
                SuggestedFileName    = cnDefaultKmlTitle + ".kml"
            };
            string fileNm = null;

            if (AppContext.Current.GetServiceViaLocator <IUIHelper>().TrySelectFiles(far, f => fileNm = f))
            {
                string fnTitle = Path.GetFileNameWithoutExtension(fileNm);
                if (!cnDefaultKmlTitle.Equals(fnTitle, StringComparison.InvariantCultureIgnoreCase) && cnDefaultKmlTitle.Equals(this.KmlTitle))
                {
                    this.KmlTitle = fnTitle.Trim();
                }
                KmlConverter kcnv = new KmlConverter();
                var          xkml = kcnv.ToKml(this.Placemarks, this.KmlTitle);
                XDocument    xdoc = new XDocument(new XDeclaration("1.0", "UTF-8", null), xkml);
                this.KmlText = xdoc.ToString();
                xdoc.Save(fileNm);
            }
        }
예제 #2
0
        private void MI_Kml_Click(object sender, RoutedEventArgs e)
        {
            if (_selectProjection == null)
            {
                return;
            }
            if (_workData == null)
            {
                return;
            }
            var ph = GetSaveFilePath();

            if (ph == null)
            {
                return;
            }
            foreach (var l in _workData)
            {
                if (!l.HasGeometry())
                {
                    continue;
                }
                //var doc = l.GetKmlDocument(SelectProjection);
                var kmlConverter = new KmlConverter(l, _selectProjection);
                var kml          = KmlFile.Create(kmlConverter.GetKmlDocument(), false);
                using (var stream = File.OpenWrite(ph + "_" + l.Name + ".kml"))
                {
                    kml.Save(stream);
                }
            }
        }
예제 #3
0
        public void ConvertKmzFile()
        {
            using (var stream = File.OpenRead(@"KmlDocs\I&W KML.kmz"))
            {
                KmlConverter.KmzToCesiumLanguage(stream, m_stringWriter);
            }

            string czml = m_stringWriter.ToString();

            Assert.IsNotEmpty(czml);
        }
예제 #4
0
        public void ConvertKmlFile()
        {
            using (var textReader = File.OpenText(@"KmlDocs\STS-122-STS-122Ascent.kml"))
            {
                KmlConverter.KmlToCesiumLanguage(textReader, m_stringWriter);
            }

            string czml = m_stringWriter.ToString();

            Assert.IsNotEmpty(czml);
        }
예제 #5
0
 private static void ConvertKml(ConversionOptions options)
 {
     using (var outputWriter = new StreamWriter(options.OutputFileName))
     {
         string extension = Path.GetExtension(options.InputFileName);
         if (".kml".Equals(extension, StringComparison.OrdinalIgnoreCase))
         {
             using (var inputReader = new StreamReader(options.InputFileName))
                 KmlConverter.KmlToCesiumLanguage(inputReader, outputWriter, options.PrettyPrint);
         }
         else if (".kmz".Equals(extension, StringComparison.OrdinalIgnoreCase))
         {
             using (var inputStream = new FileStream(options.InputFileName, FileMode.Open, FileAccess.Read))
                 KmlConverter.KmzToCesiumLanguage(inputStream, outputWriter, options.PrettyPrint);
         }
     }
 }
예제 #6
0
        void DoParseText()
        {
            try {
                KmlConverter kcnv = new KmlConverter();
                kcnv.ApplyXml(this.XmlSettings);
                kcnv.SwapLonLatWhenParsing = this.SwitchLonLat;

                var items = kcnv.ParsePlacemarks(this.Text);
                this.Placemarks.Clear();
                foreach (var r in items)
                {
                    this.Placemarks.Add(r);
                }
            }
            catch (Exception x) {
                this.ReportError(x);
            }
        }