У меня есть карта 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 смещен вверхв центре - я вижу, что они все еще возвращаются в результатах, когда я переместил ограничивающую рамку вниз.