由于项目的需要,最近在研究利用GeoServer发布WMS服务,其实如果使用ArcGIS Server的,相信很多人都能轻松搞定...但考虑到购买正版的费用,及在发布过程中遇到的开源项目的坑,固记录下来以帮助日后的自己或有需要的朋友。

       在开始操作前,说明一下,在windows下,可以直接下载geoserver的安装包直接安装就行,而且新版本的话已经集成了GeoWebCache,不需要太多的操作,本文主要介绍在tomcat下部署。

     1.配置java环境

        根据操作系统的位数,到官网下载相关的安装包,并在系统环境变量下按如下步骤进行配置:

        a、新建 JAVA_HOME 环境变量,JAVA_HOME=C:\Java\jdk1.8.0_144

        b、修改 path 环境变量,在path变量尾部添加%JAVA_HOME%\bin

        c、新建 classpath 环境变量 ,classpath=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\tools.jar

       说明:(jdk 需要配置三个环境变量; 1.5之后可以不再设置classpath,但建议保留classpath设置)

       检查是否成功安装:

       

     2.tomcat安装

         下载,这里我选择的是最新的版本tomcat 9,解压到相应的目录。

          检查是部署成功,打开浏览器输入:http://localhost:8080

     3.GeoServer、GeoWebCache部署

        GeoServer下载War包、GeoWebCache下载War包(这里选择下载1.10版本,下载最新版本遇到了问题),解压并把war包拷贝到tomcat/webapps目录下。

       重启tomcat,浏览到tomcat/bin目录下,依次双击shutdown.bat,startup.bat,在次打开http://localhost:8080界面,并跳转到http://localhost:8080/manager/html,如出现如下界面,则代表成功部署geoserver、geowebcache。

     4.配置GeoWebCache

        1.浏览到tomcat\webapps\geowebcache\WEB-INF目录下,打开web.xml并添加节点:             

<context-param>
<param-name>GEOWEBCACHE_CACHE_DIR</param-name>
<param-value>F:\geoserver</param-value>
</context-param>

     打开http://localhost:8080/manager/html界面,重启geowebcache服务,F:\geoserver目录自动生成如下文件:

       2.浏览到F:\geoserver目录下,打开geowebcache.xml并在layers节点添加如下代码:

<arcgisLayer>
<name>nhtest</name>
<tilingScheme>F:\geoserver\nh\Layers\conf.xml</tilingScheme>
<tileCachePath>F:\geoserver\nh\Layers\_alllayers</tileCachePath>
<hexZoom>false</hexZoom>
</arcgisLayer>

      按上述配置的路径,把arcgis切片的相关文件拷贝到相应的目录下,如下:

      备注:网上很多教程都是需要修改conf.cdi、conf.xml文件,但经过试验可改可不改。

  

            

   打开http://localhost:8080/manager/html界面,重启geowebcache服务 ,如能启动则表示成功配置。如不行浏览到tomcat\webapps\geowebcache\WEB-INF目录下,打开geowebcache-core-context.xml添加如下代码,并把gwc-arcgiscache-1.10.0拷贝到geowebcache/WEB-INF/lib目录下

<bean id="gwcArcGIGridsetConfigutation" class="org.geowebcache.arcgis.layer.ArcGISCacheGridsetConfiguration"/>

    5.预览GeoWebCache发布的服务

        打开http://localhost:8080/geowebcache/home,选择A list of all the layers and automatic demos

       成功部署如下图片,账号/密码 :geowebcache/secured

点击OpenLayers:[png],如出现如下图,则表示发布成功:

 5.Openlayers调用GeoWebCache发布的服务

   核心代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="ol.css" type="text/css">
    <script src="ol.js"></script>
</head>
<body>
    <div id="allmap" class="allmap"></div>
</body>
<script>
     var layers = [
               new ol.layer.Tile({
                   source: new ol.source.TileWMS({
                       url: 'http://localhost:8080/geowebcache/service/wms',
                       params: {
                           'LAYERS': 'ccyx',
                           'FORMAT': 'image/png',
                           'SRS': 'EPSG:4326',
                           'VERSION': '1.1.1'
                       },
                       tileGrid: new ol.tilegrid.TileGrid({
                           //resolution和conf.xml中保持一致  
                           resolutions: [5.9486525145757E-4, 2.97432625728785E-4, 1.5228550437313792E-4, 7.614275218656896E-5, 3.807137609328448E-5],
                           tileSize: [256, 256],
                           origin: [-400, 400]
                       })
                   })
               })
        ];
        var map = new ol.Map({
            controls: [],
            layers: layers,
            target: 'allmap',
            view: new ol.View({
                projection: 'EPSG:4326',
                center: [113.082, 23.139],
                resolution:5.9486525145757E-4,
                zoom: 0
            })
        });
</script>
</html>

出现如下图,恭喜你成功通关。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐