/// <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); } }
private static Feature ConvertMultiPoint(OsmSharp.IO.Xml.Kml.v2_0_response.MultiPoint multiPoint) { return(new Feature((Geometry) new OsmSharp.Geo.Geometries.MultiPoint(new OsmSharp.Geo.Geometries.Point[1] { KmlFeatureStreamSource.ConvertPoint(multiPoint.Point).Geometry as OsmSharp.Geo.Geometries.Point }))); }
/// <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))); }
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 }))); }
/// <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 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); } }
private static Feature ConvertMultiPolygon(OsmSharp.IO.Xml.Kml.v2_0_response.MultiPolygon multiPolygon) { return(new Feature((Geometry) new OsmSharp.Geo.Geometries.MultiPolygon(new OsmSharp.Geo.Geometries.Polygon[1] { KmlFeatureStreamSource.ConvertPolygon(multiPolygon.Polygon).Geometry as OsmSharp.Geo.Geometries.Polygon }))); }
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 }))); }
/// <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 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 a line string into an osm object. /// </summary> /// <param name="lineString"></param> /// <returns></returns> private static Feature ConvertLineString(OsmSharp.IO.Xml.Kml.v2_1.LineStringType lineString) { // convert the coordinates. var coordinates = KmlFeatureStreamSource.ConvertCoordinates(lineString.coordinates); // create the ring. var feature = new Feature(new LineString(coordinates)); feature.Attributes.Add("id", lineString.id); return(feature); }
public void KmlReadGeometryv2_0() { // initialize the geometry source. var kmlSource = new KmlFeatureStreamSource( Assembly.GetExecutingAssembly().GetManifestResourceStream("OsmSharp.Test.data.test.v2.0.kml")); // pull all the objects from the stream into the given collection. var kmlCollection = new FeatureCollection(kmlSource); var features = new List<Feature>(kmlCollection); // test collection contents. Assert.AreEqual(1, features.Count); Assert.IsInstanceOf(typeof(Point), features[0].Geometry); }
/// <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; } } }
/// <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; } } }
/// <summary> /// Converts a point into an osm object. /// </summary> /// <param name="point"></param> /// <returns></returns> private static Feature ConvertPoint(OsmSharp.IO.Xml.Kml.v2_0_response.Point point) { // convert the coordiantes. var coordinates = KmlFeatureStreamSource.ConvertCoordinates(point.coordinates); // create the point. var feature = new Feature(new Point(coordinates[0])); if (point.altitudeModeSpecified) { feature.Attributes.Add("altitude", point.altitudeMode); } if (point.extrudeSpecified) { feature.Attributes.Add("extrude", point.extrude); } if (point.id != null) { feature.Attributes.Add("id", point.id); } return(feature); }
private static Feature ConvertPoint(PointType point) { Feature feature = new Feature((Geometry) new OsmSharp.Geo.Geometries.Point(KmlFeatureStreamSource.ConvertCoordinates(point.coordinates)[0])); if (point.targetId != null) { feature.Attributes.Add("targetId", (object)point.targetId); } feature.Attributes.Add("altitude", (object)point.altitudeMode); if (point.extrude) { feature.Attributes.Add("extrude", (object)point.extrude); } if (point.id != null) { feature.Attributes.Add("id", (object)point.id); } return(feature); }
private static Feature ConvertLineString(LineStringType lineString) { return(new Feature((Geometry) new OsmSharp.Geo.Geometries.LineString((IEnumerable <GeoCoordinate>)KmlFeatureStreamSource.ConvertCoordinates(lineString.coordinates))) { Attributes = { { "id", (object)lineString.id } } }); }
/// <summary> /// Converts a multipoint to osm objects. /// </summary> /// <param name="multiPoint"></param> /// <returns></returns> private static Feature ConvertMultiPoint(OsmSharp.IO.Xml.Kml.v2_0.MultiPoint multiPoint) { return(new Feature(new MultiPoint(new Point[] { KmlFeatureStreamSource.ConvertPoint(multiPoint.Point).Geometry as Point }))); }
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))); }
/// <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 }))); }
/// <summary> /// Converts a multipolygon into osm objects. /// </summary> /// <param name="multiPolygon"></param> /// <returns></returns> private static Feature ConvertMultiPolygon(OsmSharp.IO.Xml.Kml.v2_0.MultiPolygon multiPolygon) { return(new Feature(new MultiPolygon(new Polygon[] { KmlFeatureStreamSource.ConvertPolygon(multiPolygon.Polygon).Geometry as Polygon }))); }
private static Feature ConvertPoint(OsmSharp.IO.Xml.Kml.v2_0_response.Point point) { Feature feature = new Feature((Geometry) new OsmSharp.Geo.Geometries.Point(KmlFeatureStreamSource.ConvertCoordinates(point.coordinates)[0])); if (point.altitudeModeSpecified) { feature.Attributes.Add("altitude", (object)point.altitudeMode); } if (point.extrudeSpecified) { feature.Attributes.Add("extrude", (object)point.extrude); } if (point.id != null) { feature.Attributes.Add("id", (object)point.id); } return(feature); }
public void KmlReadGeometryv2_1() { // initialize the geometry source. var kmlSource = new KmlFeatureStreamSource( Assembly.GetExecutingAssembly().GetManifestResourceStream("OsmSharp.Test.data.test.v2.1.kml")); // pull all the objects from the stream into the given collection. var kmlCollection = new FeatureCollection(kmlSource); var features = new List<Feature>(kmlCollection); // test collection contents. Assert.AreEqual(23, features.Count); Assert.IsInstanceOf(typeof(LineString), features[0].Geometry); Assert.IsInstanceOf(typeof(LineString), features[1].Geometry); Assert.IsInstanceOf(typeof(LineString), features[2].Geometry); Assert.IsInstanceOf(typeof(LineString), features[3].Geometry); Assert.IsInstanceOf(typeof(LineString), features[4].Geometry); Assert.IsInstanceOf(typeof(LineString), features[5].Geometry); Assert.IsInstanceOf(typeof(LineString), features[6].Geometry); Assert.IsInstanceOf(typeof(LineString), features[7].Geometry); Assert.IsInstanceOf(typeof(LineString), features[8].Geometry); Assert.IsInstanceOf(typeof(LineString), features[9].Geometry); Assert.IsInstanceOf(typeof(LineString), features[10].Geometry); Assert.IsInstanceOf(typeof(LineString), features[11].Geometry); Assert.IsInstanceOf(typeof(LineString), features[12].Geometry); Assert.IsInstanceOf(typeof(LineString), features[13].Geometry); Assert.IsInstanceOf(typeof(LineString), features[14].Geometry); Assert.IsInstanceOf(typeof(LineString), features[15].Geometry); Assert.IsInstanceOf(typeof(LineString), features[16].Geometry); Assert.IsInstanceOf(typeof(LineString), features[17].Geometry); Assert.IsInstanceOf(typeof(LineString), features[18].Geometry); Assert.IsInstanceOf(typeof(LineString), features[19].Geometry); Assert.IsInstanceOf(typeof(LineString), features[20].Geometry); Assert.IsInstanceOf(typeof(LineString), features[21].Geometry); Assert.IsInstanceOf(typeof(LineString), features[22].Geometry); }
private static Feature ConvertLinearRing(OsmSharp.IO.Xml.Kml.v2_0_response.LinearRing linearRing) { return(new Feature((Geometry) new LineairRing((IEnumerable <GeoCoordinate>)KmlFeatureStreamSource.ConvertCoordinates(linearRing.coordinates))) { Attributes = { { "id", (object)linearRing.id } } }); }