コード例 #1
0
ファイル: frmLocation.cs プロジェクト: ninalinzhiyun/VB3
        // add test route
        private void button3_Click(object sender, EventArgs e)
        {
            MapRoute route = GMaps.Instance.GetRouteBetweenPoints(start, end, false, MainMap.Zoom);

            if (route != null)
            {
                // add route
                GMapRoute r = new GMapRoute(route.Points, route.Name);
                r.Color = Color.Blue;
                routes.Routes.Add(r);

                // add route start/end marks
                GMapMarker m1 = new GMapMarkerGoogleRed(start);
                m1.ToolTipText = "Start: " + route.Name;
                m1.TooltipMode = MarkerTooltipMode.Always;

                GMapMarker m2 = new GMapMarkerGoogleGreen(end);
                m2.ToolTipText = "End: " + end.ToString();
                m2.TooltipMode = MarkerTooltipMode.Always;

                objects.Markers.Add(m1);
                objects.Markers.Add(m2);

                MainMap.ZoomAndCenterRoute(r);

                // testing kml support
                KmlType info = GMaps.Instance.GetRouteBetweenPointsKml(start, end, false);
                if (info != null)
                {
                }
            }
        }
コード例 #2
0
        static public Stream ToKml(IFeatureCursor cursor, int maxFeatures)
        {
            KmlType kml = new KmlType();

            DocumentType document = new DocumentType();

            kml.Item = document;

            int                  counter    = 0;
            IFeature             feature    = null;
            List <PlacemarkType> placemarks = new List <PlacemarkType>();

            while ((feature = cursor.NextFeature) != null)
            {
                if (feature.Shape == null)
                {
                    continue;
                }

                PlacemarkType placemark = new PlacemarkType();
                placemark.Item_ = ToKml(feature.Shape);

                placemarks.Add(placemark);
                counter++;
                if (counter >= maxFeatures)
                {
                    break;
                }
            }

            document.Items_ = placemarks.ToArray();

            #region Serialize
            System.Xml.Serialization.XmlSerializerNamespaces namespaces = new System.Xml.Serialization.XmlSerializerNamespaces();

            //namespaces.Add("wps", "http://www.opengis.net/wps/1.0.0");
            //namespaces.Add("ows", "http://www.opengis.net/ows/1.1");
            //namespaces.Add("xlink", "http://www.w3.org/1999/xlink");
            //namespaces.Add("xsi", "http://www.w3.org/2001/XMLSchema-instance");

            MemoryStream  ms  = new MemoryStream();
            XmlSerializer ser = new System.Xml.Serialization.XmlSerializer(kml.GetType());
            ser.Serialize(ms, kml, namespaces);
            ms.Position = 0;
            return(ms);

            //byte[] bytes = new byte[ms.Length];
            //ms.Position = 0;
            //ms.Read(bytes, 0, (int)ms.Length);

            //return System.Text.Encoding.UTF8.GetString(bytes);
            #endregion
        }
コード例 #3
0
        private String CreateKMLMessage(String strTrackName)
        {
            KmlType kml = new KmlType();

            DocumentType kmldoc = new DocumentType();

            kml.Item = kmldoc;


            int iStyleCount = 1;

            //count number of Placemarks..

            int itemCount = m_lPlaceMarks.Count;

            kmldoc.Items1 = new FeatureType[m_lPlaceMarks.Count];


            StyleType pointStyle = new StyleType();

            pointStyle.id = "PointStyle";

            pointStyle.IconStyle = new IconStyleType();

            pointStyle.IconStyle.Icon = new IconStyleIconType();

            pointStyle.IconStyle.Icon.href = "root://icons/palette-4.png";

            kmldoc.Items = new StyleSelectorType[iStyleCount];

            kmldoc.Items[0] = pointStyle;



            int iArrayPlaceHolder = 0;

            foreach (PlacemarkType item in m_lPlaceMarks)
            {
                kmldoc.Items1[iArrayPlaceHolder++] = item;
            }



            String strSerialise = SerializeToString(kml);

            //Console.WriteLine(strSerialise);

            //Console.Write("Press any key to continue . . . ");
            //Console.ReadKey(true);

            return(strSerialise);
        }
コード例 #4
0
        private static void GenerateKmlFile(KmlThreadArg arg, string kmlFolder, List <GroundOverlayType> fileOverlays, int kmlfileCount)
        {
            FolderType folder = new FolderType();

            folder.name = String.Format("{0}_{1}", arg.KmlName, kmlfileCount);

            folder.Items1 = fileOverlays.ToArray();

            KmlType kml = new KmlType();

            kml.Item = folder;

            string fileNameKmz = String.Format("{0}\\{1}{2}.kml", kmlFolder, arg.KmlName, kmlfileCount);

            using (FileStream fs = File.Create(fileNameKmz))
            {
                XmlSerializer ser = new XmlSerializer(typeof(KmlType));

                ser.Serialize(fs, kml);
            }
        }
コード例 #5
0
 private void ConvertKml(KmlType kmlType)
 {
     this.FeatureCollection.Clear();
     this.ConvertFeature(kmlType.Item);
 }