If you want to use GEO functions inside directus and are using SQLite as your database backend, you need the SpatiaLite extension for SQLite.
This Directus extension will load the module into the database (it will add it to every connection, that is the way how it works for SQLite).
Warning
If used in conjunction with the directus-hook-sqlite-perf extension, it is possible that if you have more connections in your database pool, loading of the spatialite extension happens a little to late. If this happens you'll get an error. Most of the time it will work when you retry saving.
If this is an issue: set DB_POOL__MAX
to 1!
Note that your Directus backend will need the library to be installed. If you are using the official docker image you can easily build your own image with the library included.
FROM directus/directus:11.0.2
## Install SQLite SpatiaLite: extend the SQLite core to support fully fledged Spatial SQL
## capabilities.
## https://pkgs.alpinelinux.org/package/edge/community/x86/libspatialite
USER root
RUN <<EOF
apk --no-cache add libspatialite
ln -s mod_spatialite.so.8 /usr/lib/mod_spatialite
EOF
USER node
This extension is inspired on the links in the list below.