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库。

http://openlayers.org/

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>



相关推荐