检查DbGeography Point是否在一行

时间:2016-03-16 19:24:58

标签: c# .net entity-framework spatial sqlgeography

我正在搜索类似于DbGeography.Intersects()的方法或算法。此方法比较两行并返回true,如果它们相互交叉。如果它们彼此不接触,或者一条线直接在另一条线上结束,则返回false。有没有办法确定,如果一行直接在另一行结束?

1 个答案:

答案 0 :(得分:2)

检查点是否在一条线上仅适用于理论材料。在现实世界中,没有这样的准确性允许断言一个点是否在一条线上。

在现实世界中,通过检查点与线之间的距离是否小于给定阈值来解决问题。

因此您需要使用公开Nullable Distance(DbGeography other)

var pointInLine = point.Distance(line) < threshold;