Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检测相似多边形或对象的算法_C#_Sql Server_Polygon_Spatial_Sqlgeography - Fatal编程技术网

C# 检测相似多边形或对象的算法

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)

有谁更了解如何使用C#和SQL Server检测类似的多边形或地理位置吗?目前,我通过获取两个
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)加起来,你就会清楚地知道它们的关系有多密切。不是很精确,但除了尺寸、面积和侧面之外,还有什么(位置除外)?如果你想变得非常特别,你可以为形状存储线段的交点,并跟踪角度。