Apr 2, 2024 No Comments 使用Tippecanoe工具处理大数据量的矢量数据切片 Tippecanoe是Mapbox的一个开源切片工具,项目地址:[https://github.com/mapbox/tippecanoe](https://github.com/mapbox/tippecanoe),Mapbox常规的切片方法tilelive-copy参见[另一篇博客](http://blog.csdn.net/wan_yanyan528/article/details/69266362)。Tippecanoe主要在处理大数据量时有很大的优势,具有很高的效率,并且有很多参数可以控制。Tippecanoe只能处理GeoJSON,因此在切片前需要将矢量数据转换为GeoJSON,推荐使用ogr2ogr工具转换。切片以后的格式为mbtiles,可自行导入mongodb等数据库。 ##### 一、在Linux系统配置GDAL ogr2ogr工具在GDAL中,Linux安装GDAL需要分别安装PROJ.4、GEOS和GDAL,本实验采用的[proj-4.8.0](https://github.com/OSGeo/proj.4/releases/tag/4.8.0)、[geos-3.3.8](http://download.osgeo.org/geos/)、[gdal-1.10.0](http://download.osgeo.org/gdal/1.10.0/),点击可直接进入下载地址。安装前请确保系统已经安装gcc、g++、make,没有请自行安装。 分别解压下载的压缩文件,在文件夹依次运行: ```ruby $ ./configure $ make $ make install ``` 安装完成以后命令默认路径在/usr/local/bin,库文件在/usr/local/lib,源码在/usr/local/include。此时运行gdalinfo: ```ruby $ gdalinfo ``` ![这里写图片描述](https://img-blog.csdn.net/20170301110938359?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2FuX3lhbnlhbjUyOA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) 出现以上结果说明安装成功。 **注意:** 如果出现提示共享库找不到,按一下方法处理: 1、修改/etc/ld.so.conf文件,将共享库的路径“/usr/local/lib”加入进去。 2、运行`ldconfig` 命令使其生效。凡是增加了新的共享库,都需要运行一下`ldconfig` 命令。 ##### 二、将数据转换为GeoJSON 本实验是从postgis数据库转换,转换命令为: ```auto $ ogr2ogr -f "GeoJSON" ./filename.json PG:"host=localhost dbname=timeline user=ms password=ms" -sql "select * from tablename" -t_srs="epsg:4326" ``` 其他命令可参考:[https://morphocode.com/using-ogr2ogr-convert-data-formats-geojson-postgis-esri-geodatabase-shapefiles/](https://morphocode.com/using-ogr2ogr-convert-data-formats-geojson-postgis-esri-geodatabase-shapefiles/) 为了避免一个一个转,可以写成shell进行批处理: ```auto #!bin/sh for layer in "layer1" "layer2" "layer3" "layer4" do echo "$layer convert start" ogr2ogr -f "GeoJSON" ./$layer.json PG:"host=localhost dbname=timeline user=ms password=ms" -sql "select * from $layer" -t_srs="epsg:4326" echo "$layer convert successful" done ``` ##### 三、安装tippecanoe 从github下载源码:[https://github.com/mapbox/tippecanoe/releases](https://github.com/mapbox/tippecanoe/releases) 依次输入命令进行编译安装: ```ruby $ make $ make install ``` ##### 四、 切片 ```auto $ tippecanoe -z 14 -Z 12 -ps -Bg -o river_live.mbtiles *.json ``` \-Bg 是自动抽吸,避免单个瓦片要素数量过多 \*.json 是当前文件夹下的所有json文件,会为每个文件自动创建一个图层,图层名为文件名 ##### 五、mbtiles导入到mongodb 本项目矢量瓦片需要在mongodb进行管理,需要将mbtiles导入到mongodb,此时可以使用tilelive-copy进行导入,速度很快。 ```ruby $ tilelive-copy mbtiles:///path/to/mbtiles/file.mbtiles "foxgis+mongodb://localhost/zootop?tileset_id=****&owner=****" --timeout=200000000 ``` 最后更新于 2024-04-02 10:38:09 并被添加「」标签,已有 848 位童鞋阅读过。 本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处
此处评论已关闭