#postgresql #postgis #postgresql-12
Вопрос:
Я пытаюсь преобразовать геометрию в изображения, а функций для этого, похоже, не существует.
Следующий пример взят из документов ST_AsRaster, в которых указаны следующие требования Availability: 2.0.0 - requires GDAL >= 1.6.0.
SELECT ST_AsPNG(ST_AsRaster(ST_Buffer(ST_Point(1,5),10),150, 150));
Это приводит к:
ОШИБКА: функция st_asraster(геометрия, целое число, целое число) не существует
СТРОКА 1: ВЫБЕРИТЕ ST_AsPNG(ST_AsRaster(ST_Buffer(ST_Point(1,5),10),150,…
Я нашел некоторую информацию, которая указывает на необходимость драйверов GDAL, однако, когда я пытаюсь:
SELECT short_name, long_name FROM ST_GdalDrivers();
Я получаю:
ОШИБКА: функция st_gdaldrivers() не существует
СТРОКА 1: ВЫБЕРИТЕ короткое имя, длинное имя ИЗ ST_GdalDrivers();
Я понятия не имею, куда даже пойти, чтобы попытаться решить эту проблему, почему не существует функций, была ли какая-то конфигурация, которую мне нужно было добавить, какой-то документ, который я не читал?
Даже в https://postgis.net/docs/RT_reference.html кажется, это наводит на мысль, что это должно «просто работать»?
Это устанавливается из диспетчера пакетов в Ubuntu 20.0.4.
Информация о версии SELECT PostGIS_Full_Version();
:
POSTGIS="3.0.0 r17983" [EXTENSION]
PGSQL="120"
GEOS="3.8.0-CAPI-1.13.1 "
PROJ="6.3.1"
LIBXML="2.9.4"
LIBJSON="0.13.1"
LIBPROTOBUF="1.3.3"
WAGYU="0.4.3 (Internal)"
Ответ №1:
Должно быть, вы забыли установить postgis_raster
расширение:
CREATE EXTENSION postgis_raster;
Это расширение является новым в PostGIS 3.0; до этого его объекты были частью postgis
расширения.
В документации упоминается, что:
После установки postgis его необходимо включить в каждой отдельной базе данных, в которой вы хотите его использовать.
psql -d yourdatabase -c "CREATE EXTENSION postgis;" -- if you built with raster support and want to install it -- psql -d yourdatabase -c "CREATE EXTENSION postgis_raster;"
Комментарии:
1. Это было оно. Упоминают ли об этом где-нибудь документы, например, в списке расширений? Первый раз использовал Postgres или postgis, и это было…. менее чем очевидно.
2. Я добавил ссылку.