我有一個SQL Server 2008 R2表,它有一個geometry
(非地理)列以及其他一些「標準」列。我公司目前已在表中的測試單行,並在該記錄幾何列具有下列範圍的多邊形,當我插入多邊形爲0(零)的SRID:EF5幾何相交查詢不會返回任何內容
POLYGON ((380 220, 380 575, 585 575, 380 575, 380 220))
我現在想要使用EF5檢查點是否在該多邊形中。首先,我創建了這一點:
DbGeometry testPoint = DbGeometry.PointFromText("POINT(400 240)", 0);
List<LocationArea> tResults = (from s in db.LocationAreas
where testPoint .Intersects(SqlSpatialFunctions.MakeValid(s.AreaBounds))
select s).ToList();
的第一個錯誤我得到了,加上SqlSpatialFunctions.MakeValid
方法是,s.AreaBounds
結果不是「有效」,而在代碼中創建點以前。修正了這個優秀帖子的幫助 - >query-dbgeometry-for-specific-latlng-value
現在,我可能會瘋了(我一直在看這段代碼一段時間),但是我總是得到一個空的列表返回(count = 0 ),我相信這個點在多邊形範圍內。
因此,任何指針將不勝感激,就像我雖然說,可能只是我:-)
多米尼克