mirror of
https://github.com/maplibre/martin.git
synced 2024-12-22 14:21:39 +03:00
b3fb720a94
If a PostgreSQL function has an SQL comment, it will try to parse as JSON and use its values to override the auto-generated TileJSON. It is recommended to use this form when creating comments to ensure valid JSON values. ```sql DO $do$ BEGIN EXECUTE 'COMMENT ON FUNCTION YOUR_FUNCTION (ARG1_TYPE,ARG2_TYPE,..ARGN_TYPE) IS $tj$' || $$ { "description": "description override", ... } $$::json || '$tj$'; END $do$; ``` Partially implements #822
28 lines
851 B
PL/PgSQL
28 lines
851 B
PL/PgSQL
DROP FUNCTION IF EXISTS public.function_zxy_query;
|
|
|
|
CREATE OR REPLACE FUNCTION public.function_zxy_query(z integer, x integer, y integer, query json) RETURNS bytea AS $$
|
|
DECLARE
|
|
mvt bytea;
|
|
BEGIN
|
|
RAISE NOTICE 'query: %', query;
|
|
|
|
SELECT INTO mvt ST_AsMVT(tile, 'public.function_zxy_query', 4096, 'geom') FROM (
|
|
SELECT
|
|
ST_AsMVTGeom(ST_Transform(ST_CurveToLine(geom), 3857), ST_TileEnvelope(z, x, y), 4096, 64, true) AS geom
|
|
FROM public.table_source
|
|
WHERE geom && ST_Transform(ST_TileEnvelope(z, x, y), 4326)
|
|
) as tile WHERE geom IS NOT NULL;
|
|
|
|
RETURN mvt;
|
|
END
|
|
$$ LANGUAGE plpgsql IMMUTABLE STRICT PARALLEL SAFE;
|
|
|
|
DO $do$ BEGIN
|
|
EXECUTE 'COMMENT ON FUNCTION public.function_zxy_query (INT4, INT4, INT4, JSON) IS $tj$' || $$
|
|
{
|
|
"description": null,
|
|
"foo": {"bar": "foo"}
|
|
}
|
|
$$::json || '$tj$';
|
|
END $do$;
|