PostGIS ST_SnapToGrid только частично работает - PullRequest
1 голос
/ 24 января 2020

Я пытаюсь использовать ST_SnapToGrid(geometry geomA, float size); в PostGIS 2.5.2, но постоянно получаю следующую ошибку:

ERROR:  function public.st_snaptogrid(geometry, integer, integer, double precision, double precision) does not exist
LINE 1: SELECT public.ST_SnapToGrid($1, 0, 0, $2, $3)
               ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.

То же самое происходит с примерами в документации , первый пример работает нормально, но второй возвращает ту же ошибку:

SELECT ST_SnapToGrid(
    ST_GeomFromEWKT('LINESTRING(-1.1115678 2.123 2.3456 1.11111,4.111111 3.2374897 3.1234 1.1111, -1.11111112 2.123 2.3456 1.1111112)'),
    ST_GeomFromEWKT('POINT(1.12 2.22 3.2 4.4444)'),
    0.1, 0.1, 0.1, 0.01);


SELECT ST_SnapToGrid(
    ST_GeomFromText('LINESTRING(1.1115678 2.123, 4.111111 3.2374897, 4.11112 3.23748667)'),
    0.001);

Обновление

Я использую изображение mdillon/postgis Docker и перемещаю PostGIS следующим образом:

CREATE SCHEMA abc;
ALTER SCHEMA abc OWNER TO abc;
UPDATE pg_extension SET extrelocatable = TRUE WHERE extname = 'postgis';
ALTER EXTENSION postgis set schema abc;

1 Ответ

0 голосов
/ 24 января 2020

Полагаю, что расширение (и, как следствие, функция) установлено в схеме, отличной от public.

В psql, запустите \dx postgis, чтобы увидеть, в какой схеме PostGIS

Вы не можете изменить схему расширения, изменив каталог. Это сломает вашу базу данных.

...