我意识到 Snowflake 中的许多功能在
GeometryCollection
上不起作用,因此我尝试将多边形合并为一个。
我与西班牙市政当局有一张桌子,我想加入其中的一些。当我使用
ST_COLLECT
时,通过将它们连接在一起效果很好,但输出显然是一个集合。
我也想将它作为一个多边形,但我找不到一种方法来做到这一点:
-- geo_shape is a result of TO_GEOGRAPHY() on a GeoJSON column
SELECT
ST_BUFFER(ST_COLLECT(geo_shape), 0)
FROM municipalities
给了我
Invalid argument types for function 'ST_BUFFER': (GEOGRAPHY, NUMBER(1,0))
错误,因为第一个参数必须是Geometry
而不是Geography
如果我更改为
ST_UNION
那么我会得到 Invalid argument types for function 'ST_UNION': (GEOGRAPHY)
。
我觉得我要么错过了一些知识,要么我需要做一些转换,但本质上我正在寻找 ArcGIS 中的等效合并函数。
我认为你可以使用 (TO_GEOMETRY) 将 GEOGRAPHY 对象转换为 GEOMETRY 对象。
选择 ST_BUFFER(ST_COLLECT(TO_GEOMETRY(geo_shape)), 0) 来自市政府
距离我上次使用地理参考数据库已经有几个世纪了,所以这可能不是最终的答案,但你可以查看文档。 https://docs.snowflake.com/en/sql-reference/functions/to_geometry
希望对兄弟有帮助。