SQL Server с EF Core Net Topology Suite в запросе не возвращает правильные результаты - PullRequest
0 голосов
/ 10 мая 2019

У меня есть карта Google, от которой я получаю границы и отправляю их на сервер для получения списка маркеров.

Вот пример набора переданных параметров:

neLat   60.11131083608817
neLng   -74.22879847513246
swLat   47.2231665957533
swLng   -157.85672816263252

Для проверки работоспособности я поместил их здесь, и я хотел бы указать следующее:

http://bboxfinder.com/#47.223167,-157.856728,60.111311,-74.228798

Вот как я их использую в запросе:

var points = new[]
{
    new Coordinate(neLng.Value, neLat.Value), // TR
    new Coordinate(neLng.Value, swLat.Value), // BR
    new Coordinate(swLng.Value, swLat.Value), // BL
    new Coordinate(swLng.Value, neLat.Value), // TL
    new Coordinate(neLng.Value, neLat.Value), // TR
};

var fact = NtsGeometryServices.Instance.CreateGeometryFactory(srid: 4326);
var poly = fact.CreatePolygon(points).Normalized().Reverse();
query = query.Where(x => x.Location.Within(poly));

Это не возвращает никаких результатов (несмотря на наличие нескольких местоположений, которые должны отображаться), но это происходит, если я увеличиваю или , что не имеет смысла.Они также появятся снова, если я немного переместу рамку.

Когда маркеры на карте, они находятся в правильных местах.

Это почти как полигон SQL Server смещен вверхв центре - я вижу, что они все еще возвращаются в результатах, когда я переместил ограничивающую рамку вниз.

...