You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle Spatial是否支持ST_Boundary等价功能:从多边形取线串或线串取多点?

Oracle Spatial中实现ST_Boundary等价功能的方法

Oracle Spatial可以实现与PostGIS ST_Boundary、SQL Server STBoundary等价的功能,对应的函数是SDO_GEOM.SDO_BOUNDARY,支持从POLYGON提取边界线(LINESTRING/MULTILINESTRING),以及从LINESTRING提取端点集合(MULTIPOINT),具体用法如下:

1. 从POLYGON类型获取LINESTRING/MULTILINESTRING

对于简单多边形,SDO_GEOM.SDO_BOUNDARY会返回LINESTRING类型的边界;如果是带内环的复杂多边形,则返回MULTILINESTRING。

示例SQL:

-- 创建一个简单多边形并提取边界
SELECT SDO_GEOM.SDO_BOUNDARY(
  SDO_GEOMETRY(
    2003,  -- 二维多边形类型
    NULL,
    NULL,
    SDO_ELEM_INFO_ARRAY(1,1003,1),
    SDO_ORDINATE_ARRAY(0,0, 0,10, 10,10, 10,0, 0,0)
  ),
  0.005  -- 容差参数
) AS polygon_boundary
FROM DUAL;

2. 从LINESTRING类型获取MULTIPOINT

调用SDO_GEOM.SDO_BOUNDARY处理LINESTRING时,会返回包含该线串首尾两个端点的MULTIPOINT对象。

示例SQL:

-- 创建一个线串并提取端点边界
SELECT SDO_GEOM.SDO_BOUNDARY(
  SDO_GEOMETRY(
    2002,  -- 二维线串类型
    NULL,
    NULL,
    SDO_ELEM_INFO_ARRAY(1,2,1),
    SDO_ORDINATE_ARRAY(0,0, 10,10, 20,5)
  ),
  0.005  -- 容差参数
) AS linestring_boundary
FROM DUAL;

内容的提问来源于stack exchange,提问作者mxcolin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 13:20:30