private static void WriteMultiLineStringCoordinates(JsonWriter writer, GeographyMultiLineString multiLineString)
        {
            writer.WriteStartArray();

            foreach (var lineString in multiLineString.LineStrings)
            {
                WriteLineStringCoordinates(writer, lineString);
            }

            writer.WriteEndArray();
        }
Exemplo n.º 2
0
        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");
        }
Exemplo n.º 3
0
        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();
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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();
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        private static GeographyFactory <GeographyCollection> Add(this GeographyFactory <GeographyCollection> factory, GeographyMultiLineString multiLineString)
        {
            foreach (GeographyLineString lineString in multiLineString.LineStrings)
            {
                factory = factory.Add(lineString);
            }

            return(factory);
        }