Проверьте, находится ли точка dbgeometry dbgeometry / dbgeography внутри многоугольника
У меня есть проблема, я надеюсь, что вы, ребята, можете помочь мне решить.
У меня есть точка DbGeometry (или DbGeography, я могу использовать обе), и я хотел бы проверить, находится ли она в пределах полигона DbGeometry (или DbGeography).
Я делаю это в данный момент:
var dbZones = new List<WasteManager.Database.Zone>();
foreach(var zone in zones)
{
var res = from z in DatabaseContext.Zones
let boundary =
!z.BoundaryGeometry.IsValid
? SqlSpatialFunctions.MakeValid(z.BoundaryGeometry)
: z.BoundaryGeometry
where z.ID == zone.ID && point.Within(boundary)
select z;
if(res.FirstOrDefault() != null) dbZones.Add(res.FirstOrDefault());
}
Поэтому я перебираю зоны (EF-сущность моего БД) и проверяю, находится ли эта точка в этой границе.
Проблема в том, что он не возвращает никакого результата, но я знаю, что эта точка находится внутри этой границы, потому что я вручную создал границу и точку, которая будет внутри этой границы.
Может кто-нибудь сказать мне, если то, что я делаю, неправильно, есть ли другой способ сделать это или что-то еще?
Очень ценю.
Manuel