首页 > 解决方案 > Teradata Geospatial - 创建多多边形/多边形表

问题描述

亲爱的,我有一个表,每个 id 都有点,我们需要用这些数据在 teradata 中创建一个多面或多边形表

table :
id    x-point   y -points 
100     10         25      
100     12         28
100    100        250 
101    110        125 
101    120        129

需要在 teradata 中为每个 id 创建一个表,其中 multipolygon 或 polygon 作为几何数据类型

输出表应该是

id     Geometry
100    multipolygon ( (10 25,12 28, 100 250) )
101    polygon(( 110 125, 120 129))

任何人都可以帮助我进行地理空间查询以实现此结果

标签: teradatageospatialpolygon

解决方案


有一个AggGeom表运算符,可用于将多行与地理空间对象组合:

SELECT id, geom
FROM AggGeom
 ( ON 
    ( 
      SELECT new ST_Geometry('point(' || trim(x_point) ||' ' || trim (y_point) || ')')  as geom, id
      FROM vt
    ) 
   PARTITION BY id
   USING Operation('Union') 
 ) AS dt;

但这将返回一个 MULTIPOINT,而不是一个 POLYGON,至少是一个 MULTIPOLYGON

geom.st_ConvexHull()可能是你能得到的最接近的。


推荐阅读