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); } }
/// <summary> /// Convests the polygon to osm objects. /// </summary> /// <param name="polygon"></param> /// <returns></returns> private static Feature ConvertPolygon(OsmSharp.IO.Xml.Kml.v2_1.PolygonType polygon) { IEnumerable <LineairRing> inners = KmlFeatureStreamSource.ConvertBoundary(polygon.innerBoundaryIs); LineairRing outer = KmlFeatureStreamSource.ConvertLinearRing(polygon.outerBoundaryIs.LinearRing).Geometry as LineairRing; return(new Feature(new Polygon(outer, inners))); }
/// <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); } }
/// <summary> /// Converts a polygon. /// </summary> /// <param name="polygon"></param> /// <returns></returns> private static Feature ConvertPolygon(OsmSharp.IO.Xml.Kml.v2_0_response.Polygon polygon) { var inner = KmlFeatureStreamSource.ConvertLinearRing(polygon.innerBoundaryIs.LinearRing); var outer = KmlFeatureStreamSource.ConvertLinearRing(polygon.outerBoundaryIs.LinearRing); return(new Feature(new Polygon(outer.Geometry as LineairRing, new LineairRing[] { inner.Geometry as LineairRing }))); }
private static Feature ConvertPolygon(OsmSharp.IO.Xml.Kml.v2_0_response.Polygon polygon) { Feature feature = KmlFeatureStreamSource.ConvertLinearRing(polygon.innerBoundaryIs.LinearRing); return(new Feature((Geometry) new OsmSharp.Geo.Geometries.Polygon(KmlFeatureStreamSource.ConvertLinearRing(polygon.outerBoundaryIs.LinearRing).Geometry as LineairRing, (IEnumerable <LineairRing>) new LineairRing[1] { feature.Geometry as LineairRing }))); }
private static IEnumerable <LineairRing> ConvertBoundary(boundaryType[] boundary) { List <LineairRing> lineairRingList = new List <LineairRing>(); foreach (boundaryType boundaryType in boundary) { lineairRingList.Add(KmlFeatureStreamSource.ConvertLinearRing(boundaryType.LinearRing).Geometry as LineairRing); } return((IEnumerable <LineairRing>)lineairRingList); }
/// <summary> /// Converts boundary type into an osm object. /// </summary> /// <param name="boundary"></param> /// <returns></returns> private static IEnumerable <LineairRing> ConvertBoundary(OsmSharp.IO.Xml.Kml.v2_1.boundaryType[] boundary) { List <LineairRing> rings = new List <LineairRing>(); foreach (OsmSharp.IO.Xml.Kml.v2_1.boundaryType geo in boundary) { rings.Add(KmlFeatureStreamSource.ConvertLinearRing(geo.LinearRing).Geometry as LineairRing); } return(rings); }
private static Feature ConvertPolygon(PolygonType polygon) { IEnumerable <LineairRing> holes = KmlFeatureStreamSource.ConvertBoundary(polygon.innerBoundaryIs); return(new Feature((Geometry) new OsmSharp.Geo.Geometries.Polygon(KmlFeatureStreamSource.ConvertLinearRing(polygon.outerBoundaryIs.LinearRing).Geometry as LineairRing, holes))); }