[postgis-users] How to use ST_AsMVT to serve MVT to web clients?

313 views
Skip to first unread message

zimmicz

unread,
Aug 6, 2017, 8:20:10 AM8/6/17
to postgi...@lists.osgeo.org
Hi,
I'm experimenting with the new 2.4.0 and ST_AsMVT, but I can't get my head
around the way to send it to the web client (e. g. a leafet map). I have a

CREATE TABLE cadastre_area (
code integer,
name text,
geom geometry(MULTIPOLYGON, 5514)
);

I'm running
SELECT ST_AsMVT('test', 4096, 'geom', q) FROM (SELECT code, name, geom FROM
cadastre_area) q;
for testing purposes and getting
\x1aa5dbd0070a047465737412e216120400000101180322d7160987913f8db38e01aa59160e2a010412012a0624060e001410420a1a00203b0a3914190e15085912010a0f0c0f06370804080a0e0e0234090e0
as a result. What's the proper way to pass it down to the browser?

I use [apiary](http://private-43de6-postgismvt.apiary-mock.com/mvt) for
testing.

--
View this message in context: http://postgis.17.x6.nabble.com/How-to-use-ST-AsMVT-to-serve-MVT-to-web-clients-tp5011416.html
Sent from the PostGIS - User mailing list archive at Nabble.com.
_______________________________________________
postgis-users mailing list
postgi...@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/postgis-users

zimmicz

unread,
Aug 6, 2017, 11:05:13 AM8/6/17
to postgi...@lists.osgeo.org
Moved a bit forward and got stuck with
[ST_AsMVTGeom](https://postgis.net/docs/manual-dev/ST_AsMVTGeom.html).

All the tile queries sent to PostGIS looks like

SELECT
name,
ST_AsText(ST_AsMVTGeom(
geom,
ST_MakeBox2D(ST_Point(0, 0), ST_Point(4096, 4096)),
4096,
0,
false
)) geom
FROM cadastre_area
WHERE ST_Intersects(geom, (SELECT
ST_Transform(ST_SetSRID(ST_MakeEnvelope(17.55615234375, 48.980216985374994,
17.578125, 48.99463598353408), 4326), 3857)))

I'm not really sure what the second argument stands for. The docs say
"bounds is the geometric bounds of the tile contents without buffer." So are
these the abstract coordinates of the tile space, or geographic ones
(defined in 3857?).

The queries now pass just fine, but return the data shifted to the south of
the map.

--
View this message in context: http://postgis.17.x6.nabble.com/How-to-use-ST-AsMVT-to-serve-MVT-to-web-clients-tp5011416p5011417.html

zimmicz

unread,
Aug 6, 2017, 11:43:20 AM8/6/17
to postgi...@lists.osgeo.org

Björn Harrtell

unread,
Aug 26, 2017, 4:44:47 AM8/26/17
to PostGIS Users Discussion
Seems you found a solution, but to be clear the second argument to ST_AsMVTGeom should be the geographic coordinates and the docs should probably refer to "geographic bounds" rather than "geometric bounds".

/Björn
Reply all
Reply to author
Forward
0 new messages