2004年,OpenStreetMap在英国诞生。2024年,OpenStreetMap 满 20 周岁,其愿景是创建一个免费的、可编辑的世界地图。当时,地图数据的获取往往受到限制或价格昂贵1。 经过20年的发展,该数据集合成为了最为全面的街道级别开源数据。
1.下载和获取数据
作为一种带有明显的地缘因素的地理信息数据,其可以被任何人编辑,也决定了它的随意性、多源性。正因为如此,它的地理划界、地标命名取决于标记者的具体倾向,需要谨慎地甄别。地理位置的准确性,也要对照卫星图正射三级影像进行审核。下面这个网址的数据应该经过了初步的校对:
https://openmaptiles.org/languages/zh/
可以访问经过修正的OpenStreetMap数据,免费版本为2020年。通过bbike网站,也能获取最新的原PBF数据,71GB。浏览器下载速度实在是太慢了,花30大洋买XL超级会员才能下载下来。VirtualBox虚拟机镜像是导入好的数据,但请留意根据规定,在互联网上发布GIS产品需要专门许可。 但作为研究用途,从正常途径获取PBF数据并导入研究,在本机或者LAN使用是完全没有问题的。此外OSM数据正确性没有保证,需要自行衡量其精度。
20年白驹过隙,一不小心从windows XP就到了windows 11。2009年初步接触到OpenStreetMap时,依赖的是Ubuntu服务器,之后一路从Mint到ArchLinux最终维持在Manjaro,这个发行版体现了滚动更新的便利性,以及比起Archlinux更友好的操作。之前使用自己开发的查看器作为客户端访问瓦片,目前已经转到QGIS。QGIS的功能很完备,不但支持OSM这样的xyz-tiles,还支持传统的shp文件,格式非常丰富。
2. 2024-0106 benchmark
使用虚拟机镜像,或者OSM容器中的工具链条,可导入2024年1月6日的集合,导入共耗时26小时,输出如下:
$ osm2pgsql -c -s -S"/path/to/openstreetmap-carto.style" -C28000 -dgis --drop --hstore --flat-nodes "/path/to/flat_node" '/path/to/planet-latest.osm.pbf'
2024-01-07 21:56:46 osm2pgsql version 1.10.0
2024-01-07 21:56:46 Database version: 16.1
2024-01-07 21:56:46 PostGIS version: 3.4
2024-01-07 21:56:46 Storing properties to table '"public"."osm2pgsql_properties"'.
2024-01-07 21:56:46 Setting up table 'planet_osm_point'
2024-01-07 21:56:46 Setting up table 'planet_osm_line'
2024-01-07 21:56:46 Setting up table 'planet_osm_polygon'
2024-01-07 21:56:46 Setting up table 'planet_osm_roads'
2024-01-08 09:11:14 Reading input files done in 40468s (11h 14m 28s).
2024-01-08 09:11:14 Processed 8840282980 nodes in 4635s (1h 17m 15s) - 1907k/s
2024-01-08 09:11:14 Processed 990346448 ways in 19107s (5h 18m 27s) - 52k/s
2024-01-08 09:11:14 Processed 11691694 relations in 16726s (4h 38m 46s) - 699/s
2024-01-08 09:11:19 Dropping table 'planet_osm_nodes'
2024-01-08 09:11:19 Table 'planet_osm_nodes' dropped in 0s
2024-01-08 09:11:19 Dropping table 'planet_osm_ways'
2024-01-08 09:11:21 Table 'planet_osm_ways' dropped in 2s
2024-01-08 09:11:21 Dropping table 'planet_osm_rels'
2024-01-08 09:11:21 Table 'planet_osm_rels' dropped in 0s
2024-01-08 09:11:21 Done postprocessing on table 'planet_osm_nodes' in 0s
2024-01-08 09:11:21 Done postprocessing on table 'planet_osm_ways' in 0s
2024-01-08 09:11:21 Done postprocessing on table 'planet_osm_rels' in 0s
2024-01-08 09:11:21 Clustering table 'planet_osm_roads' by geometry...
2024-01-08 09:11:21 Clustering table 'planet_osm_polygon' by geometry...
2024-01-08 09:11:21 Clustering table 'planet_osm_point' by geometry...
2024-01-08 09:11:21 Clustering table 'planet_osm_line' by geometry...
2024-01-08 12:34:03 Creating geometry index on table 'planet_osm_point'...
2024-01-08 14:23:00 Analyzing table 'planet_osm_point'...
2024-01-08 14:24:03 All postprocessing on table 'planet_osm_point' done in 18762s (5h 12m 42s).
2024-01-08 14:44:36 Creating geometry index on table 'planet_osm_roads'...
2024-01-08 15:15:48 Analyzing table 'planet_osm_roads'...
2024-01-08 20:01:08 Creating geometry index on table 'planet_osm_line'...
2024-01-08 21:36:14 Analyzing table 'planet_osm_line'...
2024-01-08 21:37:19 All postprocessing on table 'planet_osm_line' done in 44758s (12h 25m 58s).
2024-01-08 22:59:03 Creating geometry index on table 'planet_osm_polygon'...
2024-01-09 00:45:18 Analyzing table 'planet_osm_polygon'...
2024-01-09 00:46:52 All postprocessing on table 'planet_osm_polygon' done in 56131s (15h 35m 31s).
2024-01-09 00:46:52 All postprocessing on table 'planet_osm_roads' done in 21982s (6h 6m 22s).
2024-01-09 00:46:52 Storing properties to table '"public"."osm2pgsql_properties"'.
2024-01-09 00:46:52 osm2pgsql took 96606s (26h 50m 6s) overall.
3.使用瓦片
自己搭建好瓦片服务器后,可以设置QGIS的瓦片图层到本地查看:
4. 机器配置建议
配置项 | 使用数据渲染Level 10 以下 | 导入Planet数据 |
---|---|---|
CPU | Intel i7 6700K | i9 13900K |
内存 | 16GB | 64GB |
硬盘容量 | >=1TB | >=2TB |
硬盘速率 | 30MBps | 400MBps SSD |
https://baijiahao.baidu.com/s?id=1773884897519318623 ↩︎