1 GeoServer安装部署

GeoServer官网地址:https://docs.geoserver.org/latest/en/user/installation/index.html

GeoServer官网给出了若干种安装方法,这里用Web archive的方式

Geoserver的restAPI java调用 geoserver部署_服务器

1.1 下载并解压GeoServer的Web Archive

下载地址:http://geoserver.org/download

1.2 将GeoServer部署到tomcat

1.2.1 Tomcat服务器的安装及使用

安装:直接去官网下载,本地解压即可使用

启动:打开文件夹找到bin文件夹,双击startup.bat,即可启动tomcat服务器

Geoserver的restAPI java调用 geoserver部署_tomcat_02


关闭:在bin文件夹中双击shutdown.bat

修改端口号:关闭服务器,在conf文件夹中修改server.xml文件,把端口号改成自己想要的,这里改成了80(也可以不改)

Geoserver的restAPI java调用 geoserver部署_tomcat_03


Geoserver的restAPI java调用 geoserver部署_html_04


访问:启动成功后在地址栏中输入“http://localhost:80/”或者是“http://127.0.0.1:80/”,出现下面的网页表示安装成功,其中80是端口号

Geoserver的restAPI java调用 geoserver部署_tomcat_05

1.2.2 GeoServer部署到tomcat

解压后的文件夹中有个war包(geoserver.war),将war包部署到tomcat中就可以了,在tomcat中部署war包的统一做法为:复制war包粘贴到tomcat的webapps文件夹下即可,启动tomcat,tomcat会自动扫描部署webapps文件夹下的war包

Geoserver的restAPI java调用 geoserver部署_war包_06

1.2.3 访问GeoServer服务

启动tomcat服务器,浏览器输入http://localhost:80/geoserver

Geoserver的restAPI java调用 geoserver部署_服务器_07

  • 拓展
    部署war包的5种方法:

2 GeoServer服务调用

2.1 登录

输入用户名:admin,密码:geoserver,点击登录即可

Geoserver的restAPI java调用 geoserver部署_服务器_08

2.2 查看已发布的地图

2.2.1 查看url

在左侧栏点击 数据>图层预览,选择一个图层,右边下拉框选择预览格式

Geoserver的restAPI java调用 geoserver部署_tomcat_09


Geoserver的restAPI java调用 geoserver部署_tomcat_10


下图为预览的地图,红框内的为该地图的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

Geoserver的restAPI java调用 geoserver部署_tomcat_11

2.2.2 查看地图范围

在openlayers预览图中移动鼠标可以在右下角显示坐标范围,方便查询中心位置的坐标供开发时使用

Geoserver的restAPI java调用 geoserver部署_war包_12


Geoserver的restAPI java调用 geoserver部署_html_13

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>

Geoserver的restAPI java调用 geoserver部署_html_14

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>

Geoserver的restAPI java调用 geoserver部署_服务器_15


Geoserver的restAPI java调用 geoserver部署_tomcat_16