gpt4 book ai didi

postgresql - 在 PostGIS 中找不到 ST_Extrude 函数

转载 作者:行者123 更新时间:2023-11-29 12:09:34 27 4
gpt4 key购买 nike

我尝试在 PostgreSQL (v9.5.6) + PostGIS (v2.3.2) 数据库上运行以下脚本:

DO $$
DECLARE
runway_area varchar;
runway_area_transformed varchar;
BEGIN
-- calculate runway area from centerline + width + strip --> buffer comes in handy here
SELECT ST_Translate(
ST_Force3D(
ST_Buffer(
ST_GeomFromText(
'LINESTRING(16.553 48.122, 16.575 48.109)'
),
0.0006,
'endcap=square'
)
),
0,
0,
180
)
INTO runway_area;
RAISE NOTICE 'RUNWAY AREA: %', ST_AsGeoJSON(runway_area);

SELECT ST_Extrude(ST_GeomFromText(ST_AsText(runway_area)), 0,0,50)
INTO runway_area_transformed;
RAISE NOTICE 'RUNWAY AREA TRANSFORMED: %', ST_AsGeoJSON(runway_area_transformed);
END
$$ LANGUAGE plpgsql;

然后我得到以下错误:

ERROR:  function st_extrude(geometry, integer, integer, integer) does not exist
LINE 1: SELECT ST_Extrude(ST_GeomFromText(ST_AsText(runway_area)), 0...
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
QUERY: SELECT ST_Extrude(ST_GeomFromText(ST_AsText(runway_area)), 0,0,50)
CONTEXT: PL/pgSQL function inline_code_block line 24 at SQL statement
********** Error **********

ERROR: function st_extrude(geometry, integer, integer, integer) does not exist
SQL state: 42883
Hint: No function matches the given name and argument types. You might need to add explicit type casts.
Context: PL/pgSQL function inline_code_block line 24 at SQL statement

我很快发现函数 st_extrude(geometry, integer, integer, integer) 在我的数据库中不存在(我试图在 Schemas > public > Functions 中查找它,但它不存在那里)。

然后我基于这个 (https://hub.docker.com/r/mdillon/postgis/) 图像(Postgres 9 上的一些 PostGIS 2.3)启动了一个 Docker 容器,但我在那里也找不到该函数。

从 PostGIS 文档中,它说 ST_Extrude 函数应该从 v2.1.0 开始可用(参见 https://postgis.net/docs/ST_Extrude.html )。我是否遗漏了一些非常基本的问题,为什么我的设置中没有该功能?

最佳答案

所以我想出了问题所在:我错过了 postgis_sfcgal 扩展。我运行了 CREATE EXTENSION postgis_sfcgal; 并在我的数据库中成功安装了扩展。然后我可以运行上面的脚本!

关于postgresql - 在 PostGIS 中找不到 ST_Extrude 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43756555/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com