项目中有些功能用到地址解析、批量算路,由于百度等地图有配额限制,琢磨着采用开源方案解决,记录研究过程
postgresql + geoserver + osm 搭建
postgresql安装
postgresql 用于作为geoserver 的数据源,存储osm地理信息数据
# 安装rpm
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# 安装数据库
sudo yum install -y postgresql13-server
# 初始化数据库并开启自动启动
sudo /usr/pgsql-13/bin/postgresql-13-setup initdb
sudo systemctl enable postgresql-13
sudo systemctl start postgresql-13
安装postgis,让postgresql支持空间数据存储
yum install -y epel-release
yum install -y postgis31_13
修改配置,支持远程连接postgresql
vim /var/lib/pgsql/13/data/postgresql.conf
listen_addresses='localhost’修改为listen_addresses = '*'
vim /var/lib/pgsql/13/data/pg_hba.conf
# IPv4 local connections:
host all all 127.0.0.1/32 md5
host all all 0.0.0.0/0 md5
给postgres用户设置密码
sudo -u postgres psql postgres
postgres= # \password postgres
下载osm中国区地理信息数据
wget -b https://download.geofabrik.de/asia/china-latest.osm.pbf
tail -f wget-log
安装osm2pgsql 工具将osm数据导入到pg
yum install -y osm2pgsql
#这边先创建一个osm 数据库,然后将数据导入到pg
osm2pgsql -d osm -U postgres -P 5432 -C 6000 china-latest.osm.pbf
这个时候在数据库中会生成四张表,
planet_osm_line
planet_osm_point
planet_osm_polygon
planet_osm_roads
geoserver安装
下载geoserver
http://sourceforge.net/projects/geoserver/files/GeoServer/2.18.2/geoserver-2.18.2-war.zip
启动后访问地址
http://localhost:8080/geoserver
默认用户名和密码
#用户名
admin
#密码
geoserver
添加数据源,使用postgis数据库
新建图层
选择刚建立的数据存储,会自动读取四张表
planet_osm_line
planet_osm_point
planet_osm_polygon
planet_osm_roads
的数据作为图层,点击发布即可
预览图层
发布完成之后,在Layer Preview 中预览(有些地图数据不符合审核,只截取部分显示)
预览planet_osm_roads 路网效果
预览planet_osm_polygon 区域数据效果
接下来引入导航模块,待续。。。