mapbox从postgresql导数据等切片工具及服务

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

 

mapbox从postgresql导数据等切片工具及服务

上一篇:PG数据库管理_备份工具的使用


下一篇:MySQL--TCL语言