Sorununuz büyük olasılıkla gruba göre eklediğiniz içerikten kaynaklanıyor olabilir.
ST_UNION bir toplama işlevidir, yani GROUP
parametre olarak belirttiğiniz şeye göre çözülür .
Girdiğiniz bilgiler:
SELECT c.fid, ST_Union(c.boundaryshape) FROM c Group by c.fid,c.boundaryshape;
Buna göre fid
, muhtemelen benzersiz bir tanımlayıcı olan ve ayrıca boundaryshape
geometri olan, göre gruplandırıyorsunuz . Buradaki sorun, benzersiz bir kimliği paylaşan özelliklerin aynı geometrilere sahip olması pek olası değildir. Bu nedenle, ST_Union
muhtemelen aşağıdaki gibi bir şeyle sonuçlanacaktır:
Input:
fid boundaryshape
1 11
1 12
1 11
1 13
2 12
2 13
2 12
3 5
3 2
3 4
Output:
fid boundaryshape
1 (11 + 11)
1 12
1 13
2 (12 + 12)
2 13
3 2
3 4
3 5
Bu durumda, fid
kurtulmaya çalıştığınız aynı yinelenen geometrilere sahip değilseniz, yalnızca benzersiz tanımlayıcınıza dayalı olarak çözünmelisiniz . Ancak bu durumda bile, sadece grup bazında gruplandırmanız gerekir fid
ve birlik geometri çoğalmasına dikkat eder.
Aşağıdakileri deneyeceğim:
SELECT c.fid, ST_Union(c.boundaryshape) FROM c GROUP BY c.fid;
Bu, ortak özelliğe göre tüm özellikleri çözmenin istenen sonucunu vermelidir fid
.
PostGIS sitesindeki yardım belgesi: ST_Union
Altta listelenen ilk örneğe bakın ve geometriyi grup bölüm bölüm içermediğine dikkat edin.