Пример #1
0
 private void ConvertGeometry(GeometryType geometry)
 {
     if (geometry is PointType)
     {
         this.FeatureCollection.Add(KmlFeatureStreamSource.ConvertPoint(geometry as PointType));
     }
     else if (geometry is LineStringType)
     {
         this.FeatureCollection.Add(KmlFeatureStreamSource.ConvertLineString(geometry as LineStringType));
     }
     else if (geometry is LinearRingType)
     {
         this.FeatureCollection.Add(KmlFeatureStreamSource.ConvertLinearRing(geometry as LinearRingType));
     }
     else if (geometry is PolygonType)
     {
         this.FeatureCollection.Add(KmlFeatureStreamSource.ConvertPolygon(geometry as PolygonType));
     }
     else
     {
         if (!(geometry is MultiGeometryType))
         {
             return;
         }
         this.ConvertMultiGeometry(geometry as MultiGeometryType);
     }
 }
Пример #2
0
 private static Feature ConvertMultiLineString(OsmSharp.IO.Xml.Kml.v2_0_response.MultiLineString multiLineString)
 {
     return(new Feature((Geometry) new OsmSharp.Geo.Geometries.MultiLineString(new OsmSharp.Geo.Geometries.LineString[1]
     {
         KmlFeatureStreamSource.ConvertLineString(multiLineString.LineString).Geometry as OsmSharp.Geo.Geometries.LineString
     })));
 }
Пример #3
0
 /// <summary>
 /// Converts a geometry to a list of osm objects.
 /// </summary>
 /// <param name="geometry"></param>
 /// <returns></returns>
 private void ConvertGeometry(OsmSharp.IO.Xml.Kml.v2_1.GeometryType geometry)
 {
     if (geometry is OsmSharp.IO.Xml.Kml.v2_1.PointType)
     {
         this.FeatureCollection.Add(
             KmlFeatureStreamSource.ConvertPoint(geometry as OsmSharp.IO.Xml.Kml.v2_1.PointType));
     }
     else if (geometry is OsmSharp.IO.Xml.Kml.v2_1.LineStringType)
     {
         this.FeatureCollection.Add(
             KmlFeatureStreamSource.ConvertLineString(geometry as OsmSharp.IO.Xml.Kml.v2_1.LineStringType));
     }
     else if (geometry is OsmSharp.IO.Xml.Kml.v2_1.LinearRingType)
     {
         this.FeatureCollection.Add(
             KmlFeatureStreamSource.ConvertLinearRing(geometry as OsmSharp.IO.Xml.Kml.v2_1.LinearRingType));
     }
     else if (geometry is OsmSharp.IO.Xml.Kml.v2_1.PolygonType)
     {
         this.FeatureCollection.Add(
             KmlFeatureStreamSource.ConvertPolygon(geometry as OsmSharp.IO.Xml.Kml.v2_1.PolygonType));
     }
     else if (geometry is OsmSharp.IO.Xml.Kml.v2_1.MultiGeometryType)
     {
         this.ConvertMultiGeometry(geometry as OsmSharp.IO.Xml.Kml.v2_1.MultiGeometryType);
     }
 }
Пример #4
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;
                }
            }
        }
Пример #5
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;
                }
            }
        }
Пример #6
0
 /// <summary>
 /// Converts a multilinestring to osm objects.
 /// </summary>
 /// <param name="multiLineString"></param>
 /// <returns></returns>
 private static Feature ConvertMultiLineString(OsmSharp.IO.Xml.Kml.v2_0.MultiLineString multiLineString)
 {
     return(new Feature(new MultiLineString(new LineString[] { KmlFeatureStreamSource.ConvertLineString(multiLineString.LineString).Geometry as LineString })));
 }