GIS后端开源

Make it works(6) 纯离线的无限级别中国地图解决方

2020-12-12  本文已影响0人  默而识之者

首先,这不是一个教程.而是一个现成的产品包,包括了资源与服务,可以开箱即用.

1. 引入

1.1 它解决了哪些问题

1.2 它解决不了的问题

1.3 注意

2. 使用

整个包在这里,密码: i30d.请全部下载到本地.

2.1 部署环境

2.2 组件与原理

原理其实很简单,TileServer提供了一种渲染功能,OSM提供了Tileserver支持的mbtiles格式的底图包.使用了开源的OSM-liberty样式,将里面的字体替换为本地字体,同时,处理为pbf格式的本地字体也由Tileserver服务化,在渲染时调用.

Tileserver的优势是完全兼容Mapbox样式,将矢量数据渲染为png格式的栅格瓦片,当然,当前端就是Mapbox时,也可以直接提供矢量瓦片.这样就同时兼容了两者.

2.3 部署

  1. 执行install.sh导入Tileserver-gl的docker镜像,因为下载非常慢,还可能失败,因此将其放在包中
  2. 在根目录执行docker-compose up -d,即可启动服务

2.4 管理页面

默认设置为8080端口,进入localhost:8080,就能进入Tileserver的管理页面


其中:

2.5 地图效果

可以看见,无论是矢量瓦片,栅格瓦片还是字体瓦片,都来自于本地.完全脱离了互联网.

整体 局部 有地物的局部 没有地物的局部 邻国街道 更远一些的邻国 路网 栅格格式

3. 扩展

3.1 修改端口

只需要改动docker-compose.yml中的端口映射即可

3.2 添加数据

  1. 将数据制作成mbtiles包并放到mb路径下(当然,数据本身可以通过网络访问的就不用了)
  2. 修改config.json,添加该数据的映射(同样只针对本地数据)
  3. 添加样式文件的json,并放到styles文件夹下
  4. 修改config.json,添加该样式的映射(如果只需要数据,不需要渲染的话可以无需后两步)

4. 结语

这个东西很早就成型并投入使用了,工作变化后,我也再也没有使用/更新过.最近整理了一下,看看能不能帮助更多的人.

上一篇下一篇

猜你喜欢

热点阅读