广源建设集团有限公司网站,跟业务合作做网站给多少提成,怎样建微信公众号,广东省室内设计公司排名postgis mvt矢量切片 django drf mapboxgl
0.前提 [1] 静态的矢量切片可以采用 tippecanoe 生成#xff0c;nginx代理#xff0c;这种数据是不更新的#xff1b; [2] 动态的矢量切片#xff0c;一般采用postgis生成。基本上矢量切片80%的厂商都采用postgis#xff0c;确实…postgis mvt矢量切片 django drf mapboxgl
0.前提 [1] 静态的矢量切片可以采用 tippecanoe 生成nginx代理这种数据是不更新的 [2] 动态的矢量切片一般采用postgis生成。基本上矢量切片80%的厂商都采用postgis确实好用不谈商业的。 [3] postgis矢量切片使用到的函数ST_AsMVT、ST_AsMVTGeom、ST_TileEnvelope、ST_Transform、ST_Intersects、ST_SRID。 [4] postgis api参考文档官网Official Manual | PostGIS有postgis3.0版本以上的点击html点击8. PostGIS Reference即可查看矢量处理的函数。 1.sql代码 [1] 获取表的字段名称zzz替换成传入的表名【PS不建议动态查询将1-2结合不好】 select column_name from information_schema.columns where table_namezzz; [2] 动态获取矢量切片 (1.0.0)替换成传入的z,x,y参数zzz替换成传入的表名geom替换成geom几何对应的字段名称。
with mvtgeom as (
select ST_AsMVTGeom(ST_Transform(geom, 3857), ST_TileEnvelope(1,0,0)) as geom, gid from zzz, (select ST_SRID(geom) as srid from zzz where geom is not null limit 1) awhereST_Intersects(geom, ST_Transform(ST_TileEnvelope(1,0,0), srid))
)
select ST_AsMVT(mvtgeom.*, zzz, 4096, geom) as mvt from mvtgeom;
2.django drf后端服务代码