Exemplo n.º 1
0
        /// <summary>
        /// Converts a multigeometry to osm objects.
        /// </summary>
        /// <param name="multiGeometry"></param>
        /// <returns></returns>
        private void ConvertMultiGeometry(OsmSharp.IO.Xml.Kml.v2_0_response.MultiGeometry multiGeometry)
        {
            for (int idx = 0; idx < multiGeometry.Items.Length; idx++)
            {
                switch (multiGeometry.ItemsElementName[idx])
                {
                case OsmSharp.IO.Xml.Kml.v2_0_response.ItemsChoiceType.LineString:
                    this.FeatureCollection.Add(
                        KmlFeatureStreamSource.ConvertLineString(multiGeometry.Items[idx] as OsmSharp.IO.Xml.Kml.v2_0_response.LineString));
                    break;

                case OsmSharp.IO.Xml.Kml.v2_0_response.ItemsChoiceType.MultiGeometry:
                    this.ConvertMultiGeometry(multiGeometry.Items[idx] as OsmSharp.IO.Xml.Kml.v2_0_response.MultiGeometry);
                    break;

                case OsmSharp.IO.Xml.Kml.v2_0_response.ItemsChoiceType.MultiLineString:
                    this.FeatureCollection.Add(
                        KmlFeatureStreamSource.ConvertMultiLineString(multiGeometry.Items[idx] as OsmSharp.IO.Xml.Kml.v2_0_response.MultiLineString));
                    break;

                case OsmSharp.IO.Xml.Kml.v2_0_response.ItemsChoiceType.MultiPoint:
                    this.FeatureCollection.Add(
                        KmlFeatureStreamSource.ConvertMultiPoint(multiGeometry.Items[idx] as OsmSharp.IO.Xml.Kml.v2_0_response.MultiPoint));
                    break;

                case OsmSharp.IO.Xml.Kml.v2_0_response.ItemsChoiceType.MultiPolygon:
                    this.FeatureCollection.Add(
                        KmlFeatureStreamSource.ConvertMultiPolygon(multiGeometry.Items[idx] as OsmSharp.IO.Xml.Kml.v2_0_response.MultiPolygon));
                    break;

                case OsmSharp.IO.Xml.Kml.v2_0_response.ItemsChoiceType.Point:
                    this.FeatureCollection.Add(
                        KmlFeatureStreamSource.ConvertPoint(multiGeometry.Items[idx] as OsmSharp.IO.Xml.Kml.v2_0_response.Point));
                    break;

                case OsmSharp.IO.Xml.Kml.v2_0_response.ItemsChoiceType.Polygon:
                    this.FeatureCollection.Add(
                        KmlFeatureStreamSource.ConvertPolygon(multiGeometry.Items[idx] as OsmSharp.IO.Xml.Kml.v2_0_response.Polygon));
                    break;
                }
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Converts a placemark into an osm object.
        /// </summary>
        /// <param name="placemark"></param>
        /// <returns></returns>
        private void ConvertPlacemark(OsmSharp.IO.Xml.Kml.v2_0.Placemark placemark)
        {
            for (int idx = 0; idx < placemark.Items.Length; idx++)
            {
                switch (placemark.ItemsElementName[idx])
                {
                case OsmSharp.IO.Xml.Kml.v2_0.ItemsChoiceType1.LineString:
                    this.FeatureCollection.Add(
                        KmlFeatureStreamSource.ConvertLineString(placemark.Items[idx] as OsmSharp.IO.Xml.Kml.v2_0.LineString));
                    break;

                case OsmSharp.IO.Xml.Kml.v2_0.ItemsChoiceType1.MultiGeometry:
                    this.ConvertMultiGeometry(placemark.Items[idx] as OsmSharp.IO.Xml.Kml.v2_0.MultiGeometry);
                    break;

                case OsmSharp.IO.Xml.Kml.v2_0.ItemsChoiceType1.MultiLineString:
                    this.FeatureCollection.Add(
                        KmlFeatureStreamSource.ConvertMultiLineString(placemark.Items[idx] as OsmSharp.IO.Xml.Kml.v2_0.MultiLineString));
                    break;

                case OsmSharp.IO.Xml.Kml.v2_0.ItemsChoiceType1.MultiPoint:
                    this.FeatureCollection.Add(
                        KmlFeatureStreamSource.ConvertMultiPoint(placemark.Items[idx] as OsmSharp.IO.Xml.Kml.v2_0.MultiPoint));
                    break;

                case OsmSharp.IO.Xml.Kml.v2_0.ItemsChoiceType1.MultiPolygon:
                    this.FeatureCollection.Add(
                        KmlFeatureStreamSource.ConvertMultiPolygon(placemark.Items[idx] as OsmSharp.IO.Xml.Kml.v2_0.MultiPolygon));
                    break;

                case OsmSharp.IO.Xml.Kml.v2_0.ItemsChoiceType1.Point:
                    this.FeatureCollection.Add(
                        KmlFeatureStreamSource.ConvertPoint(placemark.Items[idx] as OsmSharp.IO.Xml.Kml.v2_0.Point));
                    break;

                case OsmSharp.IO.Xml.Kml.v2_0.ItemsChoiceType1.Polygon:
                    this.FeatureCollection.Add(
                        KmlFeatureStreamSource.ConvertPolygon(placemark.Items[idx] as OsmSharp.IO.Xml.Kml.v2_0.Polygon));
                    break;
                }
            }
        }