static public Polyline ToPolyline(this GeoJSON.Net.Geometry.LineString geoJsonLineString) { var polyline = new Polyline(); var path = new Path(); polyline.AddPath(path); if (geoJsonLineString?.Coordinates != null) { foreach (var position in geoJsonLineString.Coordinates) { path.AddPoint(new Point(position.Longitude, position.Latitude)); } } return(polyline); }
private GeoJSON.Net.Geometry.MultiLineString GetGeoJsonNetMultiLineString() { if (routes != null && routes.Length > 0) { var route = routes[0]; if (route.geometry != null) { if (route.geometry.coordinates != null && route.geometry.coordinates.Length > 0) { int coordLength = route.geometry.coordinates.Length; bool isCoordLengthEven = coordLength % 2 == 0; List <GeoJSON.Net.Geometry.LineString> lineStrings = new List <GeoJSON.Net.Geometry.LineString>(); for (int i = 0; i < coordLength; i += 2) { List <GeoJSON.Net.Geometry.Position> positions = new List <GeoJSON.Net.Geometry.Position>(); GeoJSON.Net.Geometry.Position firstPosition = new GeoJSON.Net.Geometry.Position(route.geometry.coordinates[i][1], route.geometry.coordinates[i][0]); GeoJSON.Net.Geometry.Position secondPosition = new GeoJSON.Net.Geometry.Position(route.geometry.coordinates[i + 1][1], route.geometry.coordinates[i + 1][0]); positions.Add(firstPosition); positions.Add(secondPosition); if (!isCoordLengthEven && i == (coordLength - 3)) { GeoJSON.Net.Geometry.Position thirdPosition = new GeoJSON.Net.Geometry.Position(route.geometry.coordinates[i + 2][1], route.geometry.coordinates[i + 2][0]); positions.Add(thirdPosition); var lastLinestring = new GeoJSON.Net.Geometry.LineString(positions); lineStrings.Add(lastLinestring); break; } var lineString = new GeoJSON.Net.Geometry.LineString(positions); lineStrings.Add(lineString); } return(new GeoJSON.Net.Geometry.MultiLineString(lineStrings)); } } } throw new ArgumentException(); }
public Feature MapAsSingleFeature(AbLine guidancePatternAdapt) { GeoJSON.Net.Geometry.LineString lineString = LineStringMapper.MapLineString(guidancePatternAdapt.A, guidancePatternAdapt.B, _properties.AffineTransformation); return(new Feature(lineString, _featProps)); }
private void saveToolStripMenuItem_Click(object sender, EventArgs e) { var Features = new List <Feature>(); foreach (var CurrentPoint in points) { var Geometry = new GeoJSON.Net.Geometry.Point(InvertPosition(CurrentPoint)); Features.Add(new Feature(Geometry)); } foreach (var CurrentLine in lines) { var Geometry = new GeoJSON.Net.Geometry.LineString(new List <GeoJSON.Net.Geometry.IPosition> { InvertPosition(CurrentLine.Item1), InvertPosition(CurrentLine.Item2) }); Features.Add(new Feature(Geometry)); } foreach (var CurrentPoly in polygons) { var Poly = new List <List <List <double> > > { new List <List <double> > { new List <double> { InvertPosition(CurrentPoly.Item1).Latitude, InvertPosition(CurrentPoly.Item1).Longitude }, new List <double> { InvertPosition(CurrentPoly.Item1).Latitude, InvertPosition(CurrentPoly.Item2).Longitude }, new List <double> { InvertPosition(CurrentPoly.Item2).Latitude, InvertPosition(CurrentPoly.Item2).Longitude }, new List <double> { InvertPosition(CurrentPoly.Item2).Latitude, InvertPosition(CurrentPoly.Item1).Longitude }, new List <double> { InvertPosition(CurrentPoly.Item1).Latitude, InvertPosition(CurrentPoly.Item1).Longitude }, } }; var Geometry = new GeoJSON.Net.Geometry.Polygon(Poly); Features.Add(new Feature(Geometry)); } var FeatureCol = new FeatureCollection(Features); var SaveDialog = new SaveFileDialog(); SaveDialog.Filter = "GeoJSON Files (*.json)|*.json"; var Result = SaveDialog.ShowDialog(); if (Result == DialogResult.OK) { Stream Stream; if ((Stream = SaveDialog.OpenFile()) != null) { string Json = JsonConvert.SerializeObject(FeatureCol); using (var Writer = new StreamWriter(Stream)) { Writer.Write(Json); Writer.Flush(); } Stream.Close(); } } }