示例#1
1
 public void Invalid_geometry_type()
 {
     var reader = new WktReader();
     reader.Read("SOMETHING EMPTY");
 }
示例#2
0
        public void ExponentialNumber()
        {
            var reader = new WktReader();

            var xyWithE = reader.Read("POINT (5.5980439826435563E-06 -71.4920233210601)");
            Assert.AreEqual(new Point(-71.4920233210601, 5.5980439826435563E-06), xyWithE);
        }
示例#3
0
        public static void LoadRestaurants(string csvFile, BulkInsertOperation bulkInsert)
        {
            var wktReader = new WktReader();
            using (var reader = new StreamReader(csvFile))
            using (var csv = new CsvReader(reader, new CsvConfiguration {UseInvariantCulture = true}))
            {
                var restaurantCsvRows = csv.GetRecords<RestaurantCsvRow>();
                foreach (var row in restaurantCsvRows)
                {
                    Polygon deliveryArea = null;

                    if (!string.IsNullOrEmpty(row.DeliveryArea))
                        deliveryArea = (Polygon)wktReader.Read(row.DeliveryArea);

                    var restaurant = new Restaurant
                    {
                        Name = row.Name,
                        Street = row.Street,
                        City = row.City,
                        PostCode = row.PostCode,
                        Phone = row.Phone,
                        Location = new Point(row.Latitude, row.Longitude),
                        DeliveryArea = deliveryArea,
                        DriveThruArea = string.IsNullOrEmpty(row.DriveThruArea) ? null : row.DriveThruArea
                    };

                    bulkInsert.Store(restaurant);

                }
            }
        }
示例#4
0
        public void LineString()
        {
            var reader = new WktReader();

            var xy = reader.Read("LINESTRING (0.0 65.9, -34.5 9)");
            Assert.AreEqual(new LineString(new Coordinate(65.9, 0), new Coordinate(9, -34.5)), xy);

            var empty = reader.Read("LINESTRING ZM EMPTY");
            Assert.AreEqual(new LineString(), empty);
        }
示例#5
0
        public void GeometryCollection()
        {
            var reader = new WktReader();

            var points = reader.Read("GEOMETRYCOLLECTION (POINT (0.0 65.9), POINT (-34.5 9), POINT  (-20 40), POINT (0 65.9))");
            Assert.AreEqual(new GeometryCollection(new Point(65.9, 0), new Point(9, -34.5), new Point(40, -20), new Point(65.9, 0)), points);

            var empty = reader.Read("GEOMETRYCOLLECTION ZM EMPTY");
            Assert.AreEqual(new GeometryCollection(), empty);
        }
示例#6
0
        public void MultiPoint()
        {
            var reader = new WktReader();

            var none = reader.Read("MULTIPOINT (0.0 65.9, -34.5 9, -20 40, 0 65.9)");
            Assert.AreEqual(new MultiPoint(new Point(65.9, 0), new Point(9, -34.5), new Point(40, -20), new Point(65.9, 0)), none);

            var brackets = reader.Read("MULTIPOINT (EMPTY, (0.0 65.9), (-34.5 9), (-20 40), (0 65.9))");
            Assert.AreEqual(new MultiPoint(new Point(), new Point(65.9, 0), new Point(9, -34.5), new Point(40, -20), new Point(65.9, 0)), brackets);

            var empty = reader.Read("MULTIPOINT ZM EMPTY");
            Assert.AreEqual(new MultiPoint(), empty);
        }
示例#7
0
        public void MultiLineString()
        {
            var reader = new WktReader();

            var one = reader.Read("MULTILINESTRING ((0.0 65.9, -34.5 9, -20 40, 0 65.9))");
            Assert.AreEqual(new MultiLineString(new LineString(new Coordinate(65.9, 0), new Coordinate(9, -34.5), new Coordinate(40, -20), new Coordinate(65.9, 0))), one);

            var two = reader.Read("MULTILINESTRING ((0.0 65.9, -34.5 9, -20 40, 0 65.9), (0.0 65.9, -34.5 9, -20 40, 0 65.9))");
            Assert.AreEqual(new MultiLineString(new LineString(new Coordinate(65.9, 0), new Coordinate(9, -34.5), new Coordinate(40, -20), new Coordinate(65.9, 0)), new LineString(new Coordinate(65.9, 0), new Coordinate(9, -34.5), new Coordinate(40, -20), new Coordinate(65.9, 0))), two);

            var empty = reader.Read("MULTILINESTRING ZM EMPTY");
            Assert.AreEqual(new MultiLineString(), empty);
        }
示例#8
0
文件: WkbTests.cs 项目: spadger/Geo
 private void Test(string wkt)
 {
     var wktReader = new WktReader();
     var geometry = wktReader.Read(wkt);
     {
         var wkbWriter = new WkbWriter(new WkbWriterSettings{ Triangle = true });
         var wkb = wkbWriter.Write(geometry);
         var wkbReader = new WkbReader();
         var geometry2 = wkbReader.Read(wkb);
         Assert.AreEqual(geometry, geometry2);
     }
     {
         var wkbWriter = new WkbWriter(new WkbWriterSettings { Encoding = WkbEncoding.BigEndian, Triangle = true });
         var wkb = wkbWriter.Write(geometry);
         var wkbReader = new WkbReader();
         var geometry2 = wkbReader.Read(wkb);
         Assert.AreEqual(geometry, geometry2);
     }
 }
示例#9
0
        public void MultiPolygon()
        {
            var reader = new WktReader();

            var one = reader.Read("MULTIPOLYGON (((0.0 65.9, -34.5 9, -20 40, 0 65.9)))");
            Assert.AreEqual(new MultiPolygon(new Polygon(new LinearRing(new Coordinate(65.9, 0), new Coordinate(9, -34.5), new Coordinate(40, -20), new Coordinate(65.9, 0)))), one);

            var two = reader.Read("MULTIPOLYGON (((0.0 65.9, -34.5 9, -20 40, 0 65.9)),((0.0 65.9, -34.5 9, -20 40, 0 65.9)))");
            Assert.AreEqual(new MultiPolygon(new Polygon(new LinearRing(new Coordinate(65.9, 0), new Coordinate(9, -34.5), new Coordinate(40, -20), new Coordinate(65.9, 0))), new Polygon(new LinearRing(new Coordinate(65.9, 0), new Coordinate(9, -34.5), new Coordinate(40, -20), new Coordinate(65.9, 0)))), two);

            var empty = reader.Read("MULTIPOLYGON ZM EMPTY");
            Assert.AreEqual(new MultiPolygon(), empty);
        }
示例#10
0
        public void Triangle()
        {
            var reader = new WktReader();

            var xy = reader.Read("TRIANGLE ((0.0 65.9, -34.5 9, -20 40, 0 65.9))");
            Assert.AreEqual(new Triangle(new LinearRing(new Coordinate(65.9, 0), new Coordinate(9, -34.5), new Coordinate(40, -20), new Coordinate(65.9, 0))), xy);

            var empty = reader.Read("Triangle ZM EMPTY");
            Assert.AreEqual(global::Geo.Geometries.Triangle.Empty, empty);
        }
示例#11
0
        public void Polygon()
        {
            var reader = new WktReader();

            var xy = reader.Read("POLYGON ((0.0 65.9, -34.5 9, -20 40, 0 65.9))");
            Assert.AreEqual(new Polygon(new LinearRing(new Coordinate(65.9, 0), new Coordinate(9, -34.5), new Coordinate(40, -20), new Coordinate(65.9, 0))), xy);

            var empty = reader.Read("POLYGON ZM EMPTY");
            Assert.AreEqual(global::Geo.Geometries.Polygon.Empty, empty);
        }
示例#12
0
        public void Point()
        {
            var reader = new WktReader();

            var xy = reader.Read("POINT (0.0 65.9)");
            Assert.AreEqual(new Point(65.9, 0), xy);

            var xyz = reader.Read("POINT Z (0.0 65.9 5)");
            Assert.AreEqual(new Point(65.9, 0, 5), xyz);

            var xyz2 = reader.Read("POINT (0.0 65.9 5)");
            Assert.AreEqual(new Point(65.9, 0, 5), xyz2);

            var xym = reader.Read("POINT M (0.0 65.9 5)");
            Assert.AreEqual(new Point(new CoordinateM(65.9, 0, 5)), xym);

            var xyzm = reader.Read("POINT ZM (0.0 65.9 4 5)");
            Assert.AreEqual(new Point(65.9, 0, 4, 5), xyzm);

            var xyzm2 = reader.Read("POINT (0.0 65.9 4 5)");
            Assert.AreEqual(new Point(65.9, 0, 4, 5), xyzm2);

            var empty = reader.Read("POINT ZM EMPTY");
            Assert.AreEqual(global::Geo.Geometries.Point.Empty, empty);
        }
示例#13
0
 public void Null_input_string_throws_argument_exception()
 {
     var reader = new WktReader();
     reader.Read((string) null);
 }
示例#14
0
        public void Null()
        {
            var reader = new WktReader();

            var nothing = reader.Read("");
            Assert.AreEqual(null, nothing);
        }