我正在尝试使用 DbGeography 将数千个矩形组合成一个多边形。对于测试,我只从两个矩形开始(因为数千个矩形都失败了,结果是完整的)。当我使用 DbGeography 的 union 方法时,它返回一个多边形,其中一个矩形从另一个矩形中减去,而不是组合它们。我用 SQLGeography 尝试了相同的过程并得到了相同的结果。谁能看到我做错了什么?还是我误解了联合方法?
两个单独的矩形显示重叠:
联合后产生的多边形:
代码(geog1为左上矩形,geog2为右下):
DbGeography geogUnion = geog1;
geogUnion = geogUnion.Union(geog2);
以下是我正在合并的多边形和生成的多边形的值:
geog1: POLYGON ((-114.964104 36.008963, -114.964104 36.005183, -114.958248 36.005183, -114.958248 36.008963, -114.964104 36.008963))
geog2: POLYGON ((-114.957387 36.006575, -114.957387 36.000681, -114.9608 36.000681, -114.9608 36.006575, -114.957387 36.006575))
geogUnion: POLYGON ((-114.957387 36.000681, -114.9608 36.000681, -114.96080000000012 36.005183034992221, -114.958248 36.005183, -114.95824799999998 36.00657500911889, -114.957387 36.006575, -114.957387 36.000681))