1 GeoServer安装部署
GeoServer官网地址:https://docs.geoserver.org/latest/en/user/installation/index.html
GeoServer官网给出了若干种安装方法,这里用Web archive的方式
1.1 下载并解压GeoServer的Web Archive
下载地址:http://geoserver.org/download
1.2 将GeoServer部署到tomcat
1.2.1 Tomcat服务器的安装及使用
安装:直接去官网下载,本地解压即可使用
启动:打开文件夹找到bin文件夹,双击startup.bat,即可启动tomcat服务器
关闭:在bin文件夹中双击shutdown.bat
修改端口号:关闭服务器,在conf文件夹中修改server.xml文件,把端口号改成自己想要的,这里改成了80(也可以不改)
访问:启动成功后在地址栏中输入“http://localhost:80/”或者是“http://127.0.0.1:80/”,出现下面的网页表示安装成功,其中80是端口号
1.2.2 GeoServer部署到tomcat
解压后的文件夹中有个war包(geoserver.war),将war包部署到tomcat中就可以了,在tomcat中部署war包的统一做法为:复制war包粘贴到tomcat的webapps文件夹下即可,启动tomcat,tomcat会自动扫描部署webapps文件夹下的war包
1.2.3 访问GeoServer服务
启动tomcat服务器,浏览器输入http://localhost:80/geoserver
- 拓展
部署war包的5种方法:
2 GeoServer服务调用
2.1 登录
输入用户名:admin,密码:geoserver,点击登录即可
2.2 查看已发布的地图
2.2.1 查看url
在左侧栏点击 数据>图层预览,选择一个图层,右边下拉框选择预览格式
下图为预览的地图,红框内的为该地图的url地址,问号后面的均为访问参数
完整url为:http://localhost/geoserver/topp/wms?service=WMS&versinotallow=1.1.0&request=GetMap&layers=topp%3Astates&bbox=-124.73142200000001%2C24.955967%2C-66.969849%2C49.371735&width=768&height=330&srs=EPSG%3A4326&styles=&format=image%2Fjpeg
2.2.2 查看地图范围
在openlayers预览图中移动鼠标可以在右下角显示坐标范围,方便查询中心位置的坐标供开发时使用
2.3 OpenLayers调用GeoServerde的wms服务示例
官网案例:https://openlayers.org/en/latest/examples/wms-image.html
纯html方式的案例完整代码:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<!-- 引入在线openlayers资源 -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/openlayers/openlayers.github.io@master/en/v6.11.0/css/ol.css" type="text/css">
<script src="https://cdn.jsdelivr.net/gh/openlayers/openlayers.github.io@master/en/v6.11.0/build/ol.js"></script>
<!-- 样式 -->
<style>
.map {
height: 400px;
width: 100%;
}
</style>
<title>OpenLayers + GeoServer</title>
</head>
<body>
<h2>My Map</h2>
<div id="map" class="map"></div> <!--用于放置地图的容器-->
<script type="text/javascript">
var map = new ol.Map({
target: 'map', //表示显示地图容器的id为map
layers: [ //配置地图图层的来源格式等参数
new ol.layer.Image({
source: new ol.source.ImageWMS({
url: 'http://localhost/geoserver/topp/wms',
params: {'LAYERS': 'topp:states'},
ratio: 1,
serverType: 'geoserver',
})
})
],
view: new ol.View({ //控制显示的地图
center: ol.proj.fromLonLat([-99.3164, 39.99023]), //坐标通过openlayers预览图查看
zoom: 4
})
});
</script>
</body>
</html>
2.4 跨域问题解决
访问geoserver服务如需解决跨域问题,则参考该方法:
即:修改tomcat>conf>web.xml,在filter的位置添加如下代码:
<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
<init-param>
<param-name>cors.allowed.origins</param-name>
<param-value>*</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>