截止2024年最高效、最优雅的GIS数据统一、发布到可视化的线路

default

数据获取

OpenStreetMap

栅格瓦片爬取

无人机航拍

数据处理

OSM 切片 MBTiles

tilemaker: https://github.com/systemed/tilemaker

1
docker run -it --rm -v $(pwd):/data ghcr.io/systemed/tilemaker:master /data/monaco-latest.osm.pbf --output /data/monaco-latest.mbtiles

完整的tilemaker命令如下:

1
2
3
4
tilemaker --input oxfordshire.osm.pbf \
          --output oxfordshire.mbtiles \
          --config resources/config-openmaptiles.json \
          --process resources/process-openmaptiles.lua

其中配置文件 config-openmaptiles.json 的内容(详细配置讲解见:https://github.com/systemed/tilemaker/blob/master/docs/CONFIGURATION.md)如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
{
  "layers": {
    "roads": { "minzoom": 12, "maxzoom": 14 },
    "buildings": { "minzoom": 14, "maxzoom": 14 },
    "pois": { "minzoom": 13, "maxzoom": 14 }
  },
  "settings": {
    "minzoom": 12,
    "maxzoom": 14,
    "basezoom": 14,
    "include_ids": false,
    "compress": "gzip",
    "name": "Tilemaker example",
    "version": "0.1",
    "description": "Sample vector tiles for tilemaker"
  }
}

PG 切 MBTiles

1
2
3
4
5
6
# 将 PG 的数据切成一个 MBtiles
ogr2ogr -dsco MINZOOM=0 -dsco MAXZOOM=15 -f "MBTiles" filename.pmtiles "PG:host=my_host port=my_port dbname=my_database user=my_user password=my_password schemas=my_schema"


# 查看命令支持的数据格式
ogr2ogr.exe --formats

栅格切 MBTiles

MBTiles 转 PMTiles

PMTile 相较于 MBtile,高度压缩,能有效减少数据存储空间,降低网络传输成本,更适合大规模数据发布预览。

PMTile预览:https://pmtiles.io/

1
2
3
4
5
# 利用执行文件进行数据转换
pmtiles convert INPUT.mbtiles OUTPUT.pmtiles

# 利用 docker 进行数据转换
docker run -v $(pwd):/data --rm protomaps/go-pmtiles convert /data/INPUT.mbtiles /data/OUTPUT.pmtiles

pmtiles

三维切片3dTiles

数据存储

PostGIS

数据发布或代理

Martin

Nginx

地图可视化

MapBox

DeckGL

地图样式编辑

maputnik

Gear(夕照)的博客。记录开发、生活,以及一些不足为道的思考……