我正在寻找一种将多个多边形合并以减少点数的方法。这是否是正确的方式:
var pol1 = DbGeography.PolygonFromText("POLYGON ((-2.91790532309701 53.3657440952224, -2.91790532309701 53.3567508791632, -2.90283703655041 53.3567508791632, -2.9028338560513 53.3657440952224, -2.91790532309701 53.3657440952224))", 4326);
var pol2 = DbGeography.PolygonFromText("POLYGON ((-2.90283703655041 53.3657440952224, -2.90283703655041 53.3567508791632, -2.88776875000381 53.3567508791632, -2.88776556950469 53.3657440952224, -2.90283703655041 53.3657440952224))", 4326);
var pol3 = DbGeography.PolygonFromText("POLYGON ((-2.91641048851245 53.3747373112816, -2.91641048851245 53.3657440952224, -2.90133902146673 53.3657440952224, -2.90133583925323 53.3747373112816, -2.91641048851245 53.3747373112816))", 4326);
var combined = (pol1.Union(pol2)).Union(pol3);
基本上,如果多边形相互接触,我希望它们被合并。分离的多边形应保持分离。
目前我不确定 Union 是否与 TSQL 函数 STUnion() 实现相同。
附注:我刚刚在 TSQL 中运行了 STUnion,并注意到它也没有产生预期的结果(即联合体包含合并多边形内的点)。