Tag: 点多边形

检查dbgeometry dbgeometry / dbgeography点是否在多边形内

我有一个问题,希望你们能帮助我解决。 我有一个DbGeometry点(或DbGeography,我可以使用两者),我想检查它是否在DbGeometry Polygon(或者DbGeography)中。 我现在这样做: var dbZones = new List(); 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实体)并检查我的这个点是否在这个边界内。 问题是它没有返回任何结果,但我知道那个点在该边界内,因为我手动创建了边界,并且该点位于该边界内。 任何人都可以告诉我,如果有其他方法可以做到这一点或其他什么,我做错了什么? 非常感谢。 曼努埃尔