Пример #1
0
        public void FindNearestNeighbor()
        {
            using (var db = GetDbConnection())
            {
                var point = new PostgisPoint(13.72, 51.07)
                {
                    SRID = (uint)SRID_WGS_84
                };                                                                       // Or point = db.StGeomFromText("POINT(13.72 51.07)", SRID_WGS_84);
                var pointProjected = db.OwmCities.Select(gt => point.StTransform(SRID_WGS84_Web_Mercator)).First();

                var nearest = db.OwmCities
                              .OrderBy(gt => gt.Geometry.StDistance(pointProjected)) // Or GeometryConstructors.StGeomFromText("POINT(1527303 6633685)", 3857)
                              .First();

                Assert.AreEqual("Prague", nearest.Name);
                // TODO: Check if spatial index was used
            }
        }