private static void WriteMultiLineStringCoordinates(JsonWriter writer, GeographyMultiLineString multiLineString) { writer.WriteStartArray(); foreach (var lineString in multiLineString.LineStrings) { WriteLineStringCoordinates(writer, lineString); } writer.WriteEndArray(); }
public void GeographyMultiLineStringRoundtripJsonLightTest() { var values = new GeographyMultiLineString[] { GeographyFactory.MultiLineString().LineString(0, 0).LineTo(0, 0).Build(), GeographyFactory.MultiLineString().LineString(-90.0, -90.0).LineTo(0, 0).LineString(90.0, 90.0).LineTo(0, 0).Build(), GeographyFactory.MultiLineString().LineString(-90.0, 0).LineTo(0, 0).LineString(0, 0).LineTo(0, 0).LineString(0, 90.0).LineTo(0, 0).Build() }; this.VerifyPrimitiveValuesRoundtripWithTypeInformation(values, "GeographyMultiLineString"); }
private static void WriteGeography( this Utf8JsonWriter writer, GeographyMultiLineString geography) { writer.WriteStartObject(); writer.WriteString(s_TypePropertyNameBytes, GeoJsonConstants.MultiLineStringTypeName); writer.WriteStartArray(s_CoordinatesPropertyNameBytes); foreach (GeographyLineString lineString in geography.LineStrings) { WritePointArray(writer, lineString.Points); } writer.WriteEndArray(); writer.WriteEndObject(); }
public static GeographyMultiLineString Create(this GeographyFactory <GeographyMultiLineString> factory, List <List <GeographyPoint> > listOfPointList) { foreach (List <GeographyPoint> points in listOfPointList) { if (points.Count < 2) { throw new JsonSerializationException($"Deserialization failed: GeoJson type '{GeoJsonConstants.MultiLineStringTypeName}' must contain at least two points."); } factory = factory.LineString(); foreach (GeographyPoint point in points) { factory = factory.LineTo(point.Latitude, point.Longitude); } } GeographyMultiLineString result = factory.Build(); return(result); }
static ODataSpatialTypeUtil() { // Geometry type values. GeometryValue = GeometryFactory.Point(32.0, -10.0).Build(); GeometryPointValue = GeometryFactory.Point(33.1, -11.0).Build(); GeometryLineStringValue = GeometryFactory.LineString(33.1, -11.5).LineTo(35.97, -11).Build(); GeometryPolygonValue = GeometryFactory.Polygon().Ring(33.1, -13.6).LineTo(35.97, -11.15).LineTo(11.45, 87.75).Ring(35.97, -11).LineTo(36.97, -11.15).LineTo(45.23, 23.18).Build(); GeometryCollectionValue = GeometryFactory.Collection().Point(-19.99, -12.0).Build(); GeometryMultiPointValue = GeometryFactory.MultiPoint().Point(10.2, 11.2).Point(11.9, 11.6).Build(); GeometryMultiLineStringValue = GeometryFactory.MultiLineString().LineString(10.2, 11.2).LineTo(11.9, 11.6).LineString(16.2, 17.2).LineTo(18.9, 19.6).Build(); GeometryMultiPolygonValue = GeometryFactory.MultiPolygon().Polygon().Ring(10.2, 11.2).LineTo(11.9, 11.6).LineTo(11.45, 87.75).Ring(16.2, 17.2).LineTo(18.9, 19.6).LineTo(11.45, 87.75).Build(); // Geography type values. GeographyValue = GeographyFactory.Point(32.0, -100.0).Build(); GeographyPointValue = GeographyFactory.Point(33.1, -110.0).Build(); GeographyLineStringValue = GeographyFactory.LineString(33.1, -110.0).LineTo(35.97, -110).Build(); GeographyPolygonValue = GeographyFactory.Polygon().Ring(33.1, -110.0).LineTo(35.97, -110.15).LineTo(11.45, 87.75).Ring(35.97, -110).LineTo(36.97, -110.15).LineTo(45.23, 23.18).Build(); GeographyCollectionValue = GeographyFactory.Collection().Point(-19.99, -12.0).Build(); GeographyMultiPointValue = GeographyFactory.MultiPoint().Point(10.2, 11.2).Point(11.9, 11.6).Build(); GeographyMultiLineStringValue = GeographyFactory.MultiLineString().LineString(10.2, 11.2).LineTo(11.9, 11.6).LineString(16.2, 17.2).LineTo(18.9, 19.6).Build(); GeographyMultiPolygonValue = GeographyFactory.MultiPolygon().Polygon().Ring(10.2, 11.2).LineTo(11.9, 11.6).LineTo(11.45, 87.75).Ring(16.2, 17.2).LineTo(18.9, 19.6).LineTo(11.45, 87.75).Build(); }
public void BuildMultiLineString() { GeographyMultiLineString mls = GeographyFactory.MultiLineString(NonDefaultGeographicCoords) .LineString(10, 20).LineTo(20, 30).LineTo(30, 40) .LineString(20, 30).LineTo(30, 40).LineTo(40, 50); Assert.AreEqual(NonDefaultGeographicCoords, mls.CoordinateSystem); mls.VerifyAsMultiLineString(new PositionData[] { new PositionData(10, 20), new PositionData(20, 30), new PositionData(30, 40), }, new PositionData[] { new PositionData(20, 30), new PositionData(30, 40), new PositionData(40, 50) }); mls = GeographyFactory.MultiLineString() .LineString(10, 20).LineTo(20, 30).LineTo(30, 40); Assert.AreEqual(CoordinateSystem.DefaultGeography, mls.CoordinateSystem); mls.VerifyAsMultiLineString(new PositionData[] { new PositionData(10, 20), new PositionData(20, 30), new PositionData(30, 40), }); mls = GeographyFactory.MultiLineString(); mls.VerifyAsMultiLineString(null); mls = GeographyFactory.MultiLineString().LineString().LineString(); mls.VerifyAsMultiLineString(null, null); }
private static GeographyFactory <GeographyCollection> Add(this GeographyFactory <GeographyCollection> factory, GeographyMultiLineString multiLineString) { foreach (GeographyLineString lineString in multiLineString.LineStrings) { factory = factory.Add(lineString); } return(factory); }