C# 检测相似多边形或对象的算法
有谁更了解如何使用C#和SQL Server检测类似的多边形或地理位置吗?目前,我通过获取两个C# 检测相似多边形或对象的算法,c#,sql-server,polygon,spatial,sqlgeography,C#,Sql Server,Polygon,Spatial,Sqlgeography,有谁更了解如何使用C#和SQL Server检测类似的多边形或地理位置吗?目前,我通过获取两个SqlGeography对象的STSymDifference(检测不在两个实例中的点),然后计算得到的SqlGeography对象的STArea,如下所示: const double maxAreaDifference = 1000.0; var diffGeography = geography1.STSymDifference(geography2); var similar = ((double)
SqlGeography
对象的STSymDifference
(检测不在两个实例中的点),然后计算得到的SqlGeography
对象的STArea
,如下所示:
const double maxAreaDifference = 1000.0;
var diffGeography = geography1.STSymDifference(geography2);
var similar = ((double) diffGeography.STArea()) < maxAreaDifference;
常数双最大面积差=1000.0;
var diffGeography=geography1.STSymDifference(geography2);
var-simular=((double)diffGeography.STArea())
有谁有更好的算法吗?我知道还有一个解决方案可以检测两种形状相似的百分比,但在我的情况下,它不起作用,因为形状可能太大,以至于百分比差异可以达到数千平方米。另外,我知道在SqlGeography
中有一个STEquals
方法,但它仅在两个SqlGeography
对象具有相同的点集时才起作用
你也可以在谷歌地图上看到多边形下面的图像,如果下次我得到一个类似的多边形,我的算法应该会检测到它有多相似
那么,你是想找到形状相似的多边形,还是在几乎相同的区域找到形状相似的多边形?欢迎来到形状分析的奇妙世界@DaMackh,如果有瑞典的形状,那么接下来我们有一个类似的形状,但它有一个或多个额外的点init,这使得形状有点不同,但实际上它是相同的形状。该算法应查找在某些纬度点上完全相同或不同的形状。我希望这能澄清你的问题。那么什么更相似呢?直角三角形和等边三角形,还是三角形和正方形?如果把周长(p)、边数(s)和面积(a)加起来,你就会清楚地知道它们的关系有多密切。不是很精确,但除了尺寸、面积和侧面之外,还有什么(位置除外)?如果你想变得非常特别,你可以为形状存储线段的交点,并跟踪角度。