geoserver+postgresql+openlayers
阅读数:102 评论数:0
跳转到新版页面分类
Linux
正文
安装Postgres 10.5
1、首先安装PostgreSQL的rpm
yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm -y
查看postgresql源
yum list | grep postgresql
安装postgresql1-contrib和postgresql-10-server
这样会给我们的系统增加一个postgres用户。
2、修改默认数据目录
默认的数据目录是/var/lib/pgsql/版本号/data目录,这里换为/home
mkdir /home/postgresql_data
chown postgres:postgres /home/postgresql_data
chmod 750 /home/postgresql_data
设置环境变量
export PATH=/usr/pgsql-10/bin:$PATH
export LD_LIBRARY_PATH=/usr/pgsql-10/lib
export PGDATA=/home/postgresql_data
切换到postgres用户,使用initdb初始化数据库,这样在/home/postgresql_data下会增加很多东西。
3、修改密码
修改postgres系统用户密码
passwd postgres
设置数据库密码
su postgres
psql
ALTER USER postgres WITH PASSWORD '密码';
// 退出
\q 回车
4、启动与关闭
pg_ctl start/stop
如果要在操作系统启动时就启动PG,可以在/etc/rc.d/rc.local文件中加以下语句:
/opt/postgresql/bin/pg_ctl start -l /opt/postgresql/log/pg_server.log -D /opt/postgresql/data
5、安装postGIS
(1)先安装几个工具包
yum install wget net-tools epel-release -y
(2)然后安装postgis
yum install postgis24_10 postgis24_10-client -y
(3)安装拓展工具
yum install ogr_fdw10 -y
yum install pgrouting_10 -y
(4)创建数据库spatial_testdb
CREATE DATABASE spatial_testdb OWNER postgres;
进入
\c spatial_testdb
安装postgis扩展
spatial_testdb=# CREATE EXTENSION postgis;
spatial_testdb=# CREATE EXTENSION postgis_topology;
spatial_testdb=# CREATE EXTENSION ogr_fdw;
验证安装是否成功
SELECT postgis_full_version();
(5)创建空间数据表
spatial_testdb=# CREATE TABLE cities(id varchar(20),name varchar(50));
spatial_testdb=# SELECT AddGeometryColumn ('cities', 'the_geom', 4326, 'POINT', 2);
之后插入数据
spatial_testdb=# INSERT INTO cities(id, the_geom, name) VALUES (1,ST_GeomFromText('POINT(-0.1257 51.508)',4326),'London, England');
spatial_testdb=# INSERT INTO cities (id, the_geom, name) VALUES (2,ST_GeomFromText('POINT(-81.233 42.983)',4326),'London, Ontario');
spatial_testdb=# INSERT INTO cities (id, the_geom, name) VALUES (3,ST_GeomFromText('POINT(27.91162491 -33.01529)',4326),'East London,SA');
(6)查询
spatial_testdb=# SELECT * FROM cities;
spatial_testdb=# SELECT id, ST_AsText(the_geom), ST_AsEwkt(the_geom), ST_X(the_geom), ST_Y(the_geom) FROM cities;
6、设置远程连接
(1)修改/home/postgresql_data/pg_hba.conf,
host all all 172.16.40.192/24 md5
(2)修改/home/postgresql_data/postgresql.conf
listen_addresses='*'
(3)重启
7、防火墙设置
firewall-cmd --add-service=postgresql --permanent 开放postgresql服务
firewall-cmd --reload 重载防火墙
安装GeoServer
1、下载地址 http://geoserver.org/download/
2、选择稳定版本(这里选择war)
3、注意Java版本需求
4、解压后将geoserver.war放到tomcat的webapps中去。
5、启动tomcat,访问http://ip:port/geoserver, 默认的用户名admin,密码geoserver。
6、登陆后,在data/stores内add new store,然后添加data目录或数据库内的vector/raster data soruce
使用参考: https://www.cnblogs.com/CityLcf/p/10054927.html
OpenLayers
OpenLayers是一个js库,用于显示各个地图所提供的数据,如ArcGis GeoSever。
1、从官网下载OpenLayers库。
2、将js与css文件导入到页面中
<link rel="stylesheet" href="v5.2.0-dist/ol.css">
<script src="v5.2.0-dist/ol.js"></script>
3、定义一个<div>元素作为地图窗口,将其定义为map
<div id="map"></div>
4、将GeoServer中的地图显示出来
<script>
var map = new ol.Map({
target: 'map',
view: new ol.View({
center: ol.proj.fromLonLat([-73.9929199, 40.7243642]),
zoom: 12
})
});
var baseSource = new ol.source.TileWMS({
url: 'http://192.168.15.98:8082/geoserver/wms',
params: {
'LAYERS': 'tiger-ny',
'TILED': true
},
serverType: 'geoserver'
});
var baseLayer = new ol.layer.Tile({
source: baseSource
});
map.addLayer(baseLayer);
</script>