GeoServer(GeoWebCache)发布ArcGIS切片的操作方法及利用OpenLayers调用其发布服务的关键代码
由于项目的需要,最近在研究利用GeoServer发布WMS服务,其实如果使用ArcGIS Server的,相信很多人都能轻松搞定...但考虑到购买正版的费用,及在发布过程中遇到的开源项目的坑,固记录下来以帮助日后的自己或有需要的朋友。在开始操作前,说明一下,在windows下,可以直接下载geoserver的安装包直接安装就行,而且新版本的话已经集成了GeoWebC...
由于项目的需要,最近在研究利用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>
出现如下图,恭喜你成功通关。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)