GeoServer(GeoWebCache)发布ArcGIS切片的操作方法及利用OpenLayers调用其发布服务的关键代码

本文详细介绍了如何在Windows环境下配置Java环境,并在Tomcat服务器上部署GeoServer和GeoWebCache,实现地理信息系统的WMS服务发布,包括配置步骤、常见问题解决及OpenLayers调用服务的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       由于项目的需要,最近在研究利用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>

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

### 回答1: GeoserverOpenLayers是两个开源的地理信息系统软件。Geoserver是一个基于Java的服务器端软件,用于发布和管理地理空间数据,支持多种数据格式和协议。OpenLayers是一个基于JavaScript的客户端库,用于在Web浏览器中显示地图和地理空间数据。这两个软件可以配合使用,实现地图数据的发布和展示。 ### 回答2: GeoserverOpenLayers是两个用于地理信息系统(GIS)的开源软件。 Geoserver是一个基于Java的服务器应用程序,用于管理和发布空间数据。它支持各种地理数据格式,如矢量数据(Shapefile、GeoJSON等)和栅格数据(GeoTIFF、ArcGrid等)。Geoserver具有强大的数据连接能力,可以与各种数据库(如PostGIS、MySQL等)或WMS/WFS/WCS服务进行集成。通过Geoserver,用户可以将地理数据发布为Web服务,以供其他应用程序和用户进行查询、分析和可视化。 OpenLayers是一个JavaScript库,用于在Web浏览器中显示地理数据。它提供了一系列功能,如地图显示、地图交互、标注、图层控制和地图操作。OpenLayers支持多种地理数据格式,可以从不同的数据源获取地理数据,并将其显示在网页上。OpenLayersGeoserver紧密集成,可以使用Geoserver提供的数据服务来加载地理数据,并使用OpenLayers提供的功能来显示和操作地图。 GeoserverOpenLayers的结合可以实现强大的GIS应用。通过Geoserver发布的地理数据可以通过OpenLayers加载和展示在Web浏览器中。通过OpenLayers提供的丰富功能和交互性,用户可以对地图进行缩放、平移、标注和查询等操作。GeoserverOpenLayers的开源特性使得它们广受欢迎,并且有一个庞大的社区支持和开发者基础。无论是个人用户还是企业用户,都可以通过使用GeoserverOpenLayers来构建自己的GIS应用,并实现地理数据的展示和分析。 ### 回答3: GeoServer是一个开源的地理信息服务软件,它允许用户将地理空间数据发布为Web服务,如地图图层、地理处理等。GeoServer支持多种数据格式,包括矢量数据、栅格数据和SQL数据库。 而OpenLayers是一个开源的、基于JavaScript的Web地图库,用于在浏览器上展示地图。OpenLayers支持多种地图数据源,并提供了丰富的地图操作功能,如缩放、平移、选择和标记地图要素等。 GeoServerOpenLayers常常一起使用,可以构建出强大的Web地图应用。GeoServer用于发布地理空间数据,而OpenLayers则用于展示这些数据并进行地图交互操作。 通过GeoServer,我们可以将各种地理信息数据发布为地图图层,然后使用OpenLayers将这些图层在Web浏览器中展示出来。通过OpenLayers的丰富功能,我们可以实现地图缩放、平移、标记要素、选择要素等各种交互操作。同时,OpenLayers还提供了丰富的地图样式控制和自定义功能,可以根据需求自定义地图的风格和符号。 总之,GeoServerOpenLayers是两个非常有用的开源工具,能够帮助我们快速搭建并展示地理信息服务。它们的使用可以帮助我们构建各种功能强大的Web地图应用,满足用户在地理空间数据处理和可视化方面的需求。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值