1.Ubuntu 22.04上部署 Nominatim 地图服务器
2安装所需的软件
2.1运行以下命令,确保所有软件包都是最新的
sudoapt update -qq
2.2安装所有需要的软件包
sudoaptinstall-y build-essential cmake g++ libboost-dev libboost-system-dev \
libboost-filesystem-dev libexpat1-dev zlib1g-dev \
libbz2-dev libpq-dev liblua5.3-dev lua5.3 lua-dkjson \
nlohmann-json3-dev postgresql-14-postgis-3 \
postgresql-contrib-14 postgresql-14-postgis-3-scripts \
php-cli php-pgsql php-intl libicu-dev python3-dotenv \
python3-psycopg2 python3-psutil python3-jinja2 \
python3-icu python3-datrie python3-sqlalchemy \
python3-asyncpg python3-yaml git
3.专用用户帐户操作
3.1创建用户和目录运行
sudouseradd-d /srv/nominatim -s /bin/bash -m nominatim
3.2使用以下选项切换到用户
sudo-u nominatim bash
3.3导出用户名和主目录
exportUSERNAME=nominatim
exportUSERHOME=/srv/nominatim
3.4验证用户账号有权限读取主目录
chmod a+x $USERHOME
4.设置PostgreSQL
4.1调整postgresql配置,该配置位于/etc/postgresql/14/main/postgresql.conf
4.2更新此配置文件后,重新启动postgresql服务
sudo systemctl restart postgresql
4.3最后,我们需要添加两个postgres用户:一个用于执行导入的用户,另一个用于应该以只读方式访问数据库的web服务器
sudo-u postgres createuser -s$USERNAMEsudo-u postgres createuser www-data
5.下载和安装nominatim
5.1进入到设置的USERHOME目录
cd$USERHOME
5.2进行安装
git clone --recursive https://github.com/openstreetmap/Nominatim.git
cd Nominatim
wget-O data/country_osm_grid.sql.gz https://www.nominatim.org/data/country_grid.sql.gz
mkdir$USERHOME/build
cd$USERHOME/build
cmake $USERHOME/Nominatim
makesudomakeinstall
6.导入数据库
6.1 进到~/nominatim/Nominatim/data目录下执行以下命令 这里以中国的数据为例
wget http://download.geofabrik.de/asia/china-latest.osm.pbf
6.2 下载完成以后,执行(这个过程可能需要几个小时)
nominatim import --osm-file china-latest.osm.pbf
6.3导入失败时,再次导入时记得先删除数据库再导入
dropdb nominatim
6.4然后等待数据库导入完成后执行
nominatim admin --check-database
6.5检查数据库都成功完成,可能会报没有index没有完成,然后根据提示执行
nominatim index
7.部署服务器
7.1安装apache2
sudoaptinstall-y apache2 libapache2-mod-php
7.2创建一个网站目录
mkdir$USERHOME/nominatim-project
7.3数据库完成后会在data目录下自动生成一个website目录,将website所有文件复制到/srv/nominatim-project/
8.修改数据库端口(可选项)
8.1 postgresql配置/etc/postgresql/14/main/postgresql.conf
原端口5432 新端口 15432
8.2 nominatim配置/usr/local/etc/noimnatim/env.defaults
pgsql:后加上修改端口 port=15432;
8.3刷新与重启
nominatim refresh --websitesudo systemctl restart apache2
各国 OpenStreetMap 数据
OpenStreetMap 数据
本文转载自: https://blog.csdn.net/Se_a_/article/details/133034191
版权归原作者 杯莫停丶 所有, 如有侵权,请联系我们删除。
版权归原作者 杯莫停丶 所有, 如有侵权,请联系我们删除。