gdal ogr2ogr
详见官网
ogr2ogr转换坐标需要proj4
下载proj-5.2.0.tar.gz并解压进入目录
./configure
make
make install
ogr2ogr工具读pg数据库需python安装psycopg2
python安装psycopg2需要
postgresql
postgresql-devel
postgresql-libs
使用yum安装,离线则使用yum下载,然后移动到机器,rpm安装
1. 介绍
ogr2ogr数据转换工具
2. 参数
-f 输出文件格式 ESRI Shapefile MapInfo File GeoJSON KML
ogr2ogr -f "GeoJSON" 输出路径 PG:"host=$host dbname=$ dbname user=postgres password=postgres" -sql "select * from poi" -s_s rs EPSG:4549 -t_srs EPSG:4326
将数据库中的数据导出为geojson
Tippecanoe-1.35.0
1. 介绍
用于把geojson数据转换成 mbtiles文件 或 pbf文件夹
2. 搭建
1) 按照官方github文档搭建
a) 源码
b) docker
2) 拷贝安装好的
将已安装好tippecanoe-1.35.0的复制到新机器
进入tippecanoe-1.35.0文件夹
# cd tippecanoe-1.35.0/
修改权限
# chmod –x tile-join tippecanoe tippecanoe-decode tippecanoe-enumerate tippecanoe-json-tool unit
创建软链接(配置命令全局可用)(需使用绝对路径)(需要用哪个就创建哪个软链接)
# ln -s `pwd`/tippecanoe /usr/local/bin/tippecanoe
然后tippecanoe就可以直接使用了
3. 使用
1) 参数
详细参数可参考github官方文档
tippecanoe 切片参数有很多,常用的有
-s 输出数据的投影,默认为EPSG:4326,还支持EPSG:3857(墨卡托投影)
-e 输出指定的pbf目录(无则创建)
-o 输出指定的mbtiles文件(最好以 .mbtiles 结尾)
-f 或 –force 删除(覆盖)文件(如果已存在),而不是报错
-l 指定图层名称
-z 最高缩放级别(默认14)
-Z 最低缩放级别(默认0)
-pC 不要压缩pbf向量图块数据(作用未知)
-pi 将要素的原始输入顺序保留为绘图顺序,而不是按地理顺序排序
-d/D/m 平铺分辨率,祥见github官网
a) 线性要素(世界铁路)(大范围,大文件),在所有缩放级别均可见
ogr2ogr -f GeoJSON ne_10m_railroads.geojson ne_10m_railroads.shp
tippecanoe -zg -o ne_10m_railroads.mbtiles --drop-densest-as-needed --extend-zooms-if-still-dropping ne_10m_railroads.geojson
- -zg:自动选择一个最大缩放比例,该比例应足以清楚地区分功能和每个功能中的细节
- --drop-densest-as-needed:如果在低缩放级别下图块太大,则放下最不可见的特征以允许使用保留的那些特征创建图块(用来将数据抽稀,可能会丢掉一些小细节)
- --extend-zooms-if-still-dropping:如果即使是高缩放级别的图块也太大,请继续添加缩放级别,直到达到可以代表所有功能的级别为止
2) pbf
tippecanoe -e 生成的pbf文件夹路径 -z 20 -Z 4 –pC geojson文件
3) mbtiles
tippecanoe -o 生成的mbtiles文件路径 -z 20 -Z 4 –pC geojson文件(多个geojson文件合并用空格)
例: tippecanoe -o sign.mbtiles -z 20 -Z 4 –pC sign.geojson
tippecanoe -o cs_object_2020.mbtiles -z 20 -Z 4 –pC sign.geojson light.geojson a.geojson
tileserver-gl
1. 介绍
用来加载mbtiles
2. 安装
1) node.js(需联网)
2) docker(可离线)
启动容器命令: docker run -d --name tileserver-gl -p 8083:80 -v /data/qiepian/data:/data maptiler/tileserver-gl
3) 使用
启动后可以在相应端口查看数据
a) 配置
对应有config.json
config.json配置错误(找不到对应的mbtiles路径等)会导致容器启动失败,页面无法访问
添加数据在config.json中 “data”下添加
如要添加pole.mbtiles数据
,
"source_id/pole": {
"mbtiles": "pole.mbtiles"
}
修改config.json后,如果是nodejs安装的,会热加载
是docker安装的,需要手动执行一次命令,才会更新配置
docker exec tileserver-gl bash -c ‘kill -HUP $(ps -x | sed -n "/\snode/s/ *\([0-9]\+\) .*/\1/p")‘
docker ps –a查看容器是否运行
nginx
docker run --name nginx -p 8082:8082 -v /data/nginx_files:/data -v /data/nginx_files/nginx.conf:/etc/nginx/nginx.conf:ro -d nginx
-p 8082:8082 后面的8082是nginx.conf里面设置的端口
常用命令:
/usr/local/nginx/sbin/nginx –t #刷新配置需配合重新加载
/usr/local/nginx/sbin/nginx -s reload #重新加载 同理使用stop , start
maputnik
样式编辑器,docker安装
docker run -d -p 8084:8888 maputnik/editor
然后访问该机器8084端口
点击Data Sources添加数据源,修改TileJSON URL为tileserver-gl上tilejson的地址,取名为Source ID