本文示例代码已上传至我的
Github
仓库https://github.com/CNFeffery/DataScienceStudyNotes
1 简介
大家好我是费老师,在日常研发地图类应用的场景中,为了在地图上快速加载大量的矢量要素,且方便快捷的在前端处理矢量的样式,且矢量数据可以携带对应的若干属性字段,目前主流的做法是使用矢量切片(vector tiles)的方式将矢量数据发布为服务进行调用:
而可用于发布矢量切片服务的工具,主流的有geoserver
、tippecanoe
等,但是使用起来方式比较繁琐,且很容易遇到性能瓶颈。
除此之外,PostGIS
中也提供了ST_AsMVT
等函数可以直接通过书写SQL
来生成矢量切片数据,但是需要额外进行服务化的开发封装,较为繁琐。
而我在最近的工作中,接触到由maplibre
开源的高性能矢量切片服务器martin
( https://github.com/maplibre/martin ),它基于Rust
进行开发,官方宣传其性能快到疯狂(Blazing fast),而在我实际的使用体验中也确实如此,在今天的文章中我就将为大家分享有关martin
发布矢量切片地图服务的常用知识