发布自己的mapbox矢量地图

匿名 (未验证) 提交于 2019-12-03 00:37:01

mapbox 作为一款开源的地图开发平台,优势兼具百度、高德等互联网地图平台和Arcgis、Supermap 等企业级地图平台的特点,是很多企业作为地图项目开发的基础平台,这里根据实际的工作经验,来谈一谈如何发布自己的mapbox矢量地图。并通过mapbox.js调用进行下一步的开发。

发布mapbox 需要很多第三方的软件平台依赖,下图是我整理的具体发布流程图,根据各个流程的主环节,分别对其中用到的软件进行介绍:

原始数据的入口是Geojson格式的文件,关于这种格式文件的详细介绍,推荐这篇博客:
https://blog.csdn.net/yaoxiaochuang/article/details/53117379
大家可以用商业的Arcgis、Supermap 等软件对地理数据进行geojson格式文件的导出。

1.tippecanoe
github地址:https://github.com/mapbox/tippecanoe,负责将geojson数据转换成mbtiles文件。
安装说明:

git clone git@github.com:mapbox/tippecanoe.git cd tippecanoe make -j make install

使用说明:
使用命令
tippecanoe -z 15 -Z 0 -ps -Bg -o out.mbtiles input.geojson
参数说明

参数 作用
-z 生成数据最大层级
-Z 生成数据最小层级
-ps 不要简化线条和多边形
-Bg 自动抽稀,避免单个瓦片要素过多
-o 输出文件路径

示例
tippecanoe -z 17 -Z 6 -o river.mbtiles river.geojson
2.tileserver-gl-light
负责mbtiles数据发布。tileserver-gl依赖较多的本地库文件,不容易编译安装,tileserver-gl-light是tileserver-gl的缩减版,去除了本地库依赖,可以通过npm直接安装。
安装说明:
安装命令: npm install -g tileserver-gl-light
Docker安装: docker run --rm -it -v $(pwd):/data -p 8080:80 klokantech/tileserver-gl
使用说明:

使用命令:tileserver-gl-light [mbtiles]文件 [option]
参数说明:

参数 作用
-p 指定端口号,默认8080
-c 指定配置文件,配置文件是json格式文件

示例

tileserver-gl-light river.mbtiles -p 3000 tileserver-gl-light -c config.json -p 3000

启动完成后可到l浏览器打开ip:发布端口进行预览


3.maputnik
负责接入发布的mbtiles数据,并进行可视化风格配置。配置完成后,可以导出样式文件,由于这个软件的安装使用相对复杂,单独有一篇博客介绍。

这里使用mapbox GL JS来调用我们发布自己风格和数据的地图

<div id='map' style='width: 400px; height: 300px;'></div> <script> mapboxgl.accessToken = 'undefined'; var map = new mapboxgl.Map({     container: 'map',     style: '自己发布风格地图地址' }); </script>

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!