C# DbG使用并减而不是合并

C# DbG使用并减而不是合并,c#,union,dbgeography,C#,Union,Dbgeography,我正在尝试使用DbGeography将数千个矩形组合成一个多边形。对于测试,我从两个矩形开始(因为数千个矩形失败,结果是fullglobe)。当我使用DbGeography的union方法时,它返回一个多边形,其中一个矩形从另一个矩形中减去,而不是组合它们。我用SQLGeography尝试了相同的过程,得到了相同的结果。有人能看出我做错了什么吗?或者我误解了联合法 两个单独的矩形显示重叠: 并集后生成的多边形: 代码(geog1为左上角矩形,geog2为右下角): 下面是我正在合并的多边形的

我正在尝试使用DbGeography将数千个矩形组合成一个多边形。对于测试,我从两个矩形开始(因为数千个矩形失败,结果是fullglobe)。当我使用DbGeography的union方法时,它返回一个多边形,其中一个矩形从另一个矩形中减去,而不是组合它们。我用SQLGeography尝试了相同的过程,得到了相同的结果。有人能看出我做错了什么吗?或者我误解了联合法

两个单独的矩形显示重叠:

并集后生成的多边形:

代码(geog1为左上角矩形,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))

经过多次测试,我发现了这一点。矩形被画成不同的方向,这意味着一个是顺时针的,另一个是逆时针的。发生这种情况是因为我从定义矩形的数据库中提取的数据不一致


一旦我通过以相同的方式定向两个矩形来规范化数据,它的行为就如预期的那样。我希望这能帮助其他人解决类似的问题。

经过大量测试,我发现了这一点。矩形被画成不同的方向,这意味着一个是顺时针的,另一个是逆时针的。发生这种情况是因为我从定义矩形的数据库中提取的数据不一致

一旦我通过以相同的方式定向两个矩形来规范化数据,它的行为就如预期的那样。我希望这能帮助其他有类似问题的人

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))