是否有人更好地了解如何使用C#和SQL Server检测类似的多边形或地理位置?目前我是通过获取两个STSymDifference
个对象的SqlGeography
(检测不在两个实例中的点)然后计算结果STArea
的{{1}}来实现的。像这样的对象:
SqlGeography
有没有人有更好的算法?我知道另外一个解决方案来检测两个形状的百分比有多大相似,但在我的情况下它不起作用,因为形状可能很大,这个百分比差异可能在几千平方米。另外我知道const double maxAreaDifference = 1000.0;
var diffGeography = geography1.STSymDifference(geography2);
var similar = ((double) diffGeography.STArea()) < maxAreaDifference;
中有一个STEquals
方法,但只有当两个SqlGeography
对象具有相同的点集时才有效。
您还可以在Google地图上看到多边形下方的图像,如果下次获得类似的多边形,我的算法应检测它的相似程度。