// 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) { } } }
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 }
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); }
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); } }
private void ConvertKml(KmlType kmlType) { this.FeatureCollection.Clear(); this.ConvertFeature(kmlType.Item); }