4

有没有人更好地了解如何使用 C# 和 SQL Server 检测相似的多边形或地理?目前,我正在通过获取STSymDifference两个对象的(检测不在两个实例中的点)SqlGeography然后计算STArea结果SqlGeography对象的 来做到这一点,如下所示:

const double maxAreaDifference = 1000.0;
var diffGeography = geography1.STSymDifference(geography2);
var similar = ((double) diffGeography.STArea()) < maxAreaDifference;

有人有更好的算法吗?我知道另一种解决方案可以检测两种形状相似的百分比,但在我的情况下它不起作用,因为形状可能太大以至于这个百分比差异可能以数千平方米为单位。我也知道有一个STEquals方法,SqlGeography但它只有在两个SqlGeography对象具有相同的点集时才有效。

您还可以在谷歌地图上看到下面的多边形图像,如果下次我得到一个相似的多边形,我的算法应该检测它的相似程度。

http://i.stack.imgur.com/jGUr5.png

4

0 回答 0