PostgreSQL 中 POLYGON 到 MULTIPOLYGON 的转换

有时候合并几个多边形后的结果并不是 MULTIPOLYGON 而是 POLYGON,这样的结果保存到 MULTIPOLYGON 类型的字段中会出错,又没有查到合适的函数或方法,来做转换,只好自己用笨办法来做转换了,先把 POLYGON 类型的字段 转为 Text,然后替换 'POLYGON' 为 'MULTIPOLYGON(', 然后再在Text尾部加上')'。

记录相应的SQL在这里,备查,也希望知道正确答案的朋友能告诉我更好的方法,先谢了。

UPDATE place_district SET border  =  GeomFromText(a.border_text,  4326 )
FROM (
SELECT address_code, 
    Overlay(AsText(St_memunion(border)) placing 
' MULTIPOLYGON( '  from  1   for   7 ||   ' ) '   as  border_text 
FROM place_city_zone 
WHERE address_code 
=   ' 513437 '  
GROUP BY address_code
) a
WHERE place_district.address_code 
=  a.address_code

 

转载于:https://www.cnblogs.com/kylindai/archive/2009/03/12/POLYGON_2_MULTIPOLYGON.html

你可能感兴趣的:(PostgreSQL 中 POLYGON 到 MULTIPOLYGON 的转换)