public static double GetLength(GeographyLineString line) { if (line == null) { throw new ArgumentNullException("line"); } return line.Length().Value; }
/// <summary> /// Sends the current spatial object to the given pipeline with a figure that represents this LineString /// </summary> /// <param name="lineString">GeographyLineString instance to serialize.</param> /// <param name="pipeline">The pipeline to populate to</param> internal static void SendFigure(this GeographyLineString lineString, GeographyPipeline pipeline) { ReadOnlyCollection <GeographyPoint> points = lineString.Points; for (int i = 0; i < points.Count; ++i) { if (i == 0) { pipeline.BeginFigure(new GeographyPosition(points[i].Latitude, points[i].Longitude, points[i].Z, points[i].M)); } else { pipeline.LineTo(new GeographyPosition(points[i].Latitude, points[i].Longitude, points[i].Z, points[i].M)); } } if (points.Count > 0) { pipeline.EndFigure(); } }
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 bool Equals(GeographyLineString other) { return(this.BaseEquals(other) ?? this.Points.SequenceEqual(other.Points)); }
public bool Equals(GeographyLineString other) { return this.BaseEquals(other) ?? this.Points.SequenceEqual(other.Points); }
/// <summary> /// Writes out a GeographyLineString value in geojson format. /// { /// "__metadata": {"type": "Edm.GeographyLineString"}, /// { "type" :"LineString", /// "coordinates": { [-122.1202778,47.6741667] } , /// "crs":{"type":"name","properties":{"name":"EPSG:4326"}} /// } /// } /// </summary> /// <param name="geographyLineStringValue">The geography value to serialize into Json</param> /// <param name="writer">The Json writer being used to write out a Json payload</param> private static void WriteGeographyLineString(GeographyLineString lineString, JsonWriter writer) { // { writer.StartObjectScope(); // "__metadata": writer.WriteName(JsonMetadataString); // { writer.StartObjectScope(); // "type" writer.WriteName(JsonTypeString); // "Edm.GeographyLineString" writer.WriteValue(Gml_Edm_GeographyLineStringName); // } writer.EndScope(); // "type":"LineString", writer.WriteName(JsonTypeString); writer.WriteValue(GmlLineString); // "coordinates": writer.WriteName(JsonCoOrdinatesString); // [ writer.StartArrayScope(); foreach (var point in lineString.Points) { WritePointCoordinates(writer, point); } // ] writer.EndScope(); // "crs": {"type": "name", "properties": {"name": "EPSG:4326"}} WriteCrsElement(writer, lineString.CoordinateSystem.EpsgId); // } writer.EndScope(); }