OpenStetMap,又名OSM,是一个用户贡献的世界地图,可以自由编辑。你可以把它看作是谷歌地图的开源和自托管替代品。本教程将向您展示如何在Ubuntu16.04上构建自己的OpenStetMaptile服务器,这样您就不必使用专有的地图服务。
注意:本教程有点过时。请阅读我更新的教程:如何在Ubuntu18.04上设置OpenStetMaptile服务器。
OpenStetMap功能
OpenStetMap的数据覆盖了全世界,因此可以方便地支持任何国家或每个国家的用户。OpenStetMap每天每小时每分钟都会更新,您可以实时获得这些更新。OpenStetMap数据是免费和开放的,不收取订阅费和页面浏览费。OpenStetMap数据丰富而详细,包含大量与地面人员相关的数据——收集数据的人员。
先决条件/硬件要求
所需的RAM和磁盘空间取决于要使用哪个国家的地图。例如
英国地图至少需要1G内存和60GB磁盘空间。整个行星地图至少需要GRAM和1TBSSD磁盘。用旋转硬盘来绘制整个地球地图是不可行的。
如果要在web浏览器中预渲染分幅以加速地图加载,则需要更多磁盘空间,这是强烈建议的。查看此页面以查看预渲染磁贴需要多少磁盘空间。另外需要注意的是,将大型地图数据(如整个地球)导入PostgSQL数据库需要很长时间。考虑添加更多的RAM,特别是使用SSD,而不是旋转硬盘来加速导入过程。
如果你打算主持整个世界地图,我建议你从康塔博购买超大VPS,康塔博以
10核CPU60GB内存1.6TB英特尔OptaneSSD
每月只需6.99欧元。
第一步:升级软件
sudoaptupdatesudoaptupgrade
步骤:使用PostGIS安装PostgSQL数据库服务器
我们将使用PostgSQL存储地图数据。PostGIS是PostgSQL的地理空间扩展。运行以下命令来安装它们。
sudoaptinstallpostgsqlpostgsql-contribpostgispostgsql-9.5-postgis-.
安装过程中将在操作系统上创建postgs用户。它是PostgSQL数据库服务器的超级用户。默认情况下,该用户没有密码,无需设置密码,因为您可以使用sudo切换到postgs用户:
sudo-upostgs-i
现在可以创建PostgSQL数据库用户osm。
cateuserosm
创建一个名为gis的数据库,同时让osm成为数据库的所有者-UTF8指定数据库中使用的字符编码方案为UTF8。
catedb-EUTF8-Oosmgis
在gis数据库上创建hsto和postgis扩展。
psql-c"CREATEEXTENSIONhsto;"-dgispsql-c"CREATEEXTENSIONpostgis;"-dgis
退出postgs用户。
exit
在操作系统上创建osm用户,以便平铺服务器可以作为osm用户运行。
sudoadduserosm
第步:下载地图样式表和地图数据
首先切换到osm用户
su-osm
将最新的CartoCSS地图样式表下载到osm用户的主目录。
wget