||
一、所涉及的软件下载链接:
链接: https://pan.baidu.com/s/1W2AR_-5lvgNcWZx5XyxNqQ
提取码: vsa1
二、使用Tomcat搭建Web服务器
安装JDK并配置环境:https://how2j.cn/k/helloworld/helloworld-jdk/141.html
Tomcat官网地址:https://tomcat.apache.org/download-70.cgi
从百度网盘或者从Tomcat官方网站下载最新的版本Tomcat,在Windows 10系统下解压缩即可使用:
在bin目录下在cmd终端打开startup.bat,略等片刻,在浏览器中输入localhost:8080,出现Tomcat网页,说明配置成功:
接下来需要在conf目录下打开tomcat-users.xml文件,将最后的信息改为以下文字:
这样,设定登陆Tomcat的帐号为:admin,密码为:tomcat。
之后需要将webapps目录下,manager目录下,WEB-INF文件夹中web.xml打开,找到<max-file-size>一项,将其中的数值第一位由5改为8,即82428800,同理将<max-request-size>改为上值。如下图:
这是因为GeoServer大于了50M,超过了默认的限制。
接下来去GeoServer官方网站下载最新的版本:http://blog.geoserver.org/
下载war文件。在下载后的压缩包中可以看到geoserver.war文件(这其实是一个压缩文件,如果把.war改成.zip后可以直接解压看看里面的内容),这个就是GeoServer的服务器文件了。将这个文件复制到webapps目录下。
接下来,重启Apache-Tomcat服务器,在浏览器中输入localhost:8080,点击首页上方的Manager App,输入帐号:admin和密码:tomcat即可登录应用管理器:
进入以后查看到如下界面,有一个/geoserver,这是由geoserver.war自动解压出来的目录:
在网页下方出现的/geoserver应用,点击可以进入GeoServer的首页。
这时可以设置GeoServer的管理员帐号。帐号admin,密码geoserver。当出现下图时,说明服务器配置成功。
三、PostgreSQL+PostGIS地理数据库
对于地理信息数据需要使用到空间数据库,本文采用百度网盘中的WebGIS-master\OpenLayers3\CHINA数据,如何导入数据呢?参考下面,具体操作过程就不讲了!
https://zhuanlan.zhihu.com/p/62160223
完成数据导入以后的效果如下:
四、Geoserver发布WMS服务
打开浏览器,进入GeoServer首页,点击左侧的工作区(Workspaces),再点击添加新的工作区(Add new workspaces)可以创建工作空间。工作空间的作用是在于将不同数据来源的数据保存在一起。在设置URI时,须设置为http://localhost:8080/china,china代表的是工作空间的名字,这样所有与之相关的网页均在这个URI之后。
接下来点击数据存储(Stores),再点击添加新的数据存储(Add new store),可以添加一个新的数据源。从图中我们可以看出,GeoServer支持多种数据类型。在这里我们以PostGIS为例进行服务的发布。
点击PostGIS选项,进入数据源信息的页面。先点击工作区(Workspace)下拉选项,可以选择具体的工作空间,例如本文中选择china。
接下来输入数据源名称,这是标识不同数据的依据,例如本文中输入postgis_25_sample。
在连接参数中,输入host,若为本机则为localhost,端口5432,再输入数据源在PostgreSQL中的数据库名称,之后输入连接PostgreSQL的帐号和密码,保存以后即可完成数据库的连接。
接下来就要发布具体的图层了。点击图层(Layers),即可进入图层选择界面;再点击添加一个新图层(Add a new resource),即可发布具体的图层。点击后,先选择具体的数据源,会出现该数据源下的各种表,选择需要发布为图层的数据表,点击发布(publish),即可进行发布。
可以根据需要输入图层名称,也可以直接使用默认的图层名称。需要注意的是地图投影的定义:
在这里可以输入地图投影。如果原图没有投影,将不会进行显示,在这里可以点击Find,输入投影的代码(如WGS84为4326)进行查找。接下来在下方的范围中,点击从数据中计算(Compute from data),即可算出范围。
其他的文本框可以不填。保存之后即为图层的发布。
为了查看发布后的效果,可以点击左侧的Layer Preview,找到刚刚发布的内容。GeoServer提供了多种数据格式可以调用。点击OpenLayers可以直接看到使用OpenLayers调用的图层。
URL地址:
在网页右键查看网页源代码,可以看到如果调用geoserver发布的wms服务的
四、使用OpenLayers作为前端
OpenLayers是一个用于开发WebGIS客户端的JavaScript包。OpenLayers 支持的地图来源包括Google Maps、Yahoo、 Map、微软Virtual Earth 等,用户还可以用简单的图片地图作为背景图,与其他的图层在OpenLayers 中进行叠加,在这一方面OpenLayers提供了非常多的选择。除此之外,OpenLayers实现访问地理空间数据的方法都符合行业标准。OpenLayers 支持Open GIS 协会制定的WMS(Web Mapping Service)和WFS(Web Feature Service)等网络服务规范,可以通过远程服务的方式,将以OGC 服务形式发布的地图数据加载到基于浏览器的OpenLayers 客户端中进行显示。OpenLayers采用面向对象方式开发,并使用来自Prototype.js和Rico中的一些组件。
https://segmentfault.com/a/1190000009679800
利用html文本调用wms服务脚本代码如下:
<!DOCTYPE html> <html> <head> <title>WMS</title> <link rel="stylesheet" href="https://openlayers.org/en/v3.20.1/css/ol.css" type="text/css" /> <script src="https://openlayers.org/en/v3.20.1/build/ol.js"></script> </head> <body> <div id="map" class="map"></div> <script> var format = 'image/png'; var bounds = [8175445.5, 2056264.75, 15037809, 7087594]; //中国各省底图(面) var ImageMap = new ol.layer.Image({ source: new ol.source.ImageWMS({ ratio: 1, url: 'http://localhost:8080/geoserver/china/wms', params: {'FORMAT': format, 'VERSION': '1.1.1', "LAYERS": 'china:china_2014gdp', "exceptions": 'application/vnd.ogc.se_inimage', } }) }); //设置地图投影 var projection = new ol.proj.Projection({ code: 'EPSG:3857', units: 'm', global: true }); //设置地图 var map = new ol.Map({ //地图中的比例尺等控制要素 controls: ol.control.defaults({ attribution: false }).extend([ new ol.control.ScaleLine() ]), //设置显示的容器 target: 'map', //设置图层 layers: [ //添加图层 ImageMap ], //设置视图 view: new ol.View({ //设置投影 projection: projection }) }); //地图显示 map.getView().fit(bounds, map.getSize()); </script> </body> </html>
注意实测发现,代码不能再Edge浏览器运行;最好选择谷歌浏览器!
参考资料:
https://www.cnblogs.com/kkyyhh96/p/6379515.html
http://webgis.cn/gconfig-setup.html
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2025-1-7 13:54
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社