采用开源方案定制自己的地图服务(开源地图控件)

采用开源方案定制自己的地图服务(开源地图控件)

解决方案goocz2025-02-01 11:15:0816A+A-

项目中有些功能用到地址解析、批量算路,由于百度等地图有配额限制,琢磨着采用开源方案解决,记录研究过程

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 区域数据效果

接下来引入导航模块,待续。。。

点击这里复制本文地址 以上内容由goocz整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

果子教程网 © All Rights Reserved.  蜀ICP备2024111239号-5