GeoWebCache的配置与使用
最近在做一个开源GIS的demo的工作,工作中涉及到了地图瓦片,选取的开发环境是geoserver+openlayers,那么地图瓦片自然而然也就使用geowebcache,geowebcache就相当于是openlayer和geoserver之间的中介,首先,geowebcache会根据你的配置信息,把相应的地图图层切好图,存放在磁盘中,然后在使用openlayer加载地图服务的时候,把地图服务的地址指向geowebcache,geowebcache接收到这些请求后,会根据请求的位置和比例尺在切片目录中找到对应的瓦片,然后返回给你,省去了动态生成地图的过程,速度大幅度提高,而且由于请求的图片资源是事先生成好的,浏览器加载这些图片之后,下一次再去请求同样的图片,就会从浏览器的缓存中拉去,速度进一步提高!
下面说一下geowebcache的配置使用。首先下载war包,在tomcat中解压后,会在WEB-INF目录下找到一系列配置文件,先找到web.xml,然后在web-app根元素下添加:
<context-param> <param-name>GEOWEBCACHE_CACHE_DIR</param-name> <param-value>D:/data/cache</param-value> </context-param>
param-value的值就是你要存放geowebcache瓦片的位置,配置好这里,重启tomcat,你会发现在你的瓦片目录下生成了一些文件,其中就有geowebcache.xml,这个文件是geowebcache配置的关键所在,以下是这个文件的配置信息:
<?xml version="1.0" encoding="utf-8"?> <gwcConfiguration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://geowebcache.org/schema/1.5.3" xsi:schemaLocation="http://geowebcache.org/schema/1.5.3 http://geowebcache.org/schema/1.5.3/geowebcache.xsd"> <version>1.5.3</version> <backendTimeout>120</backendTimeout> <serviceInformation> <title>GeoWebCache</title> <description>GeoWebCache is an advanced tile cache for WMS servers.It supports a large variety of protocols and formats, including WMS-C, WMTS, KML, Google Maps and Virtual Earth.</description> <keywords> <string>WFS</string> <string>WMS</string> <string>WMTS</string> <string>GEOWEBCACHE</string> </keywords> <serviceProvider> <providerName>lzugis</providerName> <providerSite>http://blog.csdn.net/gisshixisheng</providerSite> <serviceContact> <individualName>lzugis</individualName> <positionName>GIS工程师</positionName> <addressType>工程师</addressType> <addressStreet>海淀区翠微路甲3号</addressStreet> <addressCity>北京</addressCity> <addressAdministrativeArea>海淀区</addressAdministrativeArea> <addressPostalCode>010010</addressPostalCode> <addressCountry>中国,China</addressCountry> <phoneNumber>+81 189 1133 7984</phoneNumber> <faxNumber>+81 189 1133 7984</faxNumber> <addressEmail>niujp08@qq.com</addressEmail> </serviceContact> </serviceProvider> <fees>NONE</fees> <accessConstraints>NONE</accessConstraints> </serviceInformation> <gridSets> <!-- Grid Set Example, by default EPSG:900913 and EPSG:4326 are defined --> <gridSet> <!-- This does not have to be an EPSG code, you can also have multiple gridSet elements per SRS --> <name>EPSG:4326</name> <srs> <number>4326</number> </srs> <extent> <coords> <double>73.45100463600005</double> <double>18.16324718800007</double> <double>134.976797647</double> <double>53.53194315200005</double> </coords> </extent> <scaleDenominators> <double>25000000</double> <double>1000000</double> <double>100000</double> <double>25000</double> </scaleDenominators> <tileHeight>256</tileHeight> <tileWidth>256</tileWidth> </gridSet> </gridSets> <layers> <wmsLayer> <name>china</name> <mimeFormats> <string>image/gif</string> <string>image/jpeg</string> <string>image/png</string> <string>image/png8</string> </mimeFormats> <wmsUrl> <string>http://200.200.200.220:8888/geoserver/wms</string> </wmsUrl> <wmsLayers>geoserver:china</wmsLayers> </wmsLayer> </layers> </gwcConfiguration>
配置好上面的信息之后,进入:http://localhost:8080/geowebcache/demo,点击"Reload
Configuration"重新读取配置信息,如下所示:
如果配置信息没错,你会发现,你所配置的图层信息已经显示在这个页面上了,点击“Seed
this layer”,然后你需要输入下面这些信息:
设置好,点submit就开始切图了。在资源管理器中打开,如下图:
配置完成以后,就是如何在地图中显示了,下面是显示的源代码:
<pre name="code" class="html"><html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>china EPSG:4326 image/png</title> <link rel="stylesheet" type="text/css" href="http://200.200.200.220/OpenLayers-2.12/theme/default/style.css"/> <style type="text/css"> body { font-family: sans-serif; font-weight: bold; font-size: .8em; } body { border: 0px; margin: 0px; padding: 0px; } #map { width: 100%; height: 100%; border: 0px; padding: 0px; } </style> <script type="text/javascript" src="http://200.200.200.220/OpenLayers-2.12/OpenLayers.js"></script> <script type="text/javascript" src="http://200.200.200.220/OpenLayers-2.12/lib/OpenLayers/Lang/zh-CN.js"></script> <script type="text/javascript"> var map, demolayer; OpenLayers.DOTS_PER_INCH = 90.71428571428572; OpenLayers.Util.onImageLoadErrorColor = 'transparent'; function init(){ var mapOptions = { resolutions: [0.703125, 0.3515625, 0.17578125, 0.087890625, 0.0439453125, 0.02197265625, 0.010986328125, 0.0054931640625, 0.00274658203125, 0.001373291015625, 6.866455078125E-4, 3.4332275390625E-4, 1.71661376953125E-4, 8.58306884765625E-5, 4.291534423828125E-5, 2.1457672119140625E-5, 1.0728836059570312E-5, 5.364418029785156E-6, 2.682209014892578E-6, 1.341104507446289E-6, 6.705522537231445E-7, 3.3527612686157227E-7 ], projection: new OpenLayers.Projection('EPSG:4326'), maxExtent: new OpenLayers.Bounds(-180.0,-90.0,180.0,90.0), units: "degrees", controls: [] }; map = new OpenLayers.Map('map', mapOptions ); map.addControl(new OpenLayers.Control.PanZoomBar({ position: new OpenLayers.Pixel(2, 15) })); map.addControl(new OpenLayers.Control.Navigation()); map.addControl(new OpenLayers.Control.Scale($('scale'))); map.addControl(new OpenLayers.Control.MousePosition({element: $('location')})); demolayer = new OpenLayers.Layer.WMS( "china","http://200.200.200.220:8080/geowebcache/service/wms", {layers: 'china', format: 'image/png' }, { tileSize: new OpenLayers.Size(256,256)} ); map.addLayer(demolayer); map.zoomToExtent(new OpenLayers.Bounds(73.45100463600005, 18.16324718800007, 134.976797647, 53.53194315200005) ); } </script> </head> <body onLoad="init()"> <div id="map"></div> </body> </html>
显示的结果如下:
附件:
geowebcache-1.5.3-war.zip
或者我的百度网盘,地址:http://pan.baidu.com/s/1kTJt91l
GeoWebCache的配置与使用的更多相关文章
- 矢量切片应用中geoserver与geowebcache分布式部署方案
在进行GIS项目开发中,常使用Geoserver作为开源的地图服务器,Geoserver是一个JavaEE项目,常通过Tomcat进行部署.而GeoWebCache是一个采用Java实现用于缓存WMS ...
- Web GIS离线解决方案
1.背景 在离线环境下(局域网中)的GIS系统中如何使用地图?这里的地图主要指的是地图底图,有了底图切片数据,我们就可以看到地图,在上面加上自己的业务数据图层,进行相关操作. 要在离线环境下看到GIS ...
- 关于WebGIS开源解决方案的探讨
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 公司目前的多数项目采用的是ArcGIS产品+Oracle+W ...
- 关于WebGIS开源解决方案的探讨(转载)
1.背景 公司目前的多数项目采用的是ArcGIS产品+Oracle+WebLogic/Tomcat/APUSIC/WebShpere这样的架构.由于 公司从事的是政府项目,甲方单位普遍均采购有以上产品 ...
- 项目角度谈矢量切片运用以及Geoserver处理自定义规格矢量切片方案
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1. 背景 矢量切图方案目前已经是很常见的一个方案,在2016年时团队 ...
- 关于WebGIS开源解决方案的探讨(转)
关于WebGIS开源解决方案的探讨 文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 公司目前的多数项目采 ...
- GeoServer中配置GeoWebCache切片缓存目录
war版的GeoServer中,默认情况下,GeoWebCache切片会缓存在C盘某目录下.该目录比较隐蔽,并且随着切片缓存的增多,所占空间也会越来越大,所以建议手动配置其切换缓存目录. 配置方式:在 ...
- Geoserver2.15.1 配置自带 GeoWebCache 插件发布 ArcGIS Server 瓦片(附配置好的 Geoserver2.15.1 下载)
之前写过一篇关于 Geoserver2.8.5 版本的部署配置发布 ArcGIS Server 瓦片点击查看,那是下载 Geoserver2.8.5 源码编译,重新打包 jar 来部署配置思路的,版本 ...
- 基于Tomcat部署的Geoserver配置Geowebcache,并转发ArcGIS切片
1.将GeowebCache的war包解压到tomcat的webapp下,打开war包中的WEB-INF中的web.xml文件,同时创建一个你想保存geowencache的切片的空文件夹,例如我命名叫 ...
随机推荐
- Python Network Programming
@1: 同步网络编程(也就是阻塞方式) 同步网络编程一次只能连接一个客户端. Server端: import socket def debugPrint(name, value): print(&qu ...
- Part1.2 、RabbitMQ -- Publish/Subscribe 【发布和订阅】
python 目录 (一).交换 (Exchanges) -- 1.1 武sir 经典 Exchanges 案例展示. (二).临时队列( Temporary queues ) (三).绑定(Bind ...
- Part01、memcache 缓存
Python操作 RabbitMQ.Redis.Memcache.SQLAlchemy 目录 一. Memcached Memcached安装和基本使用 Python操作Memcached2.1 se ...
- Django-model基础(Day69)
阅读目录 ORM 创建表(建立模型) 添加表记录 查询表记录 F查询与Q查询 修改表记录 删除表记录 数据库回顾:http://www.cnblogs.com/yuanchenqi/articles/ ...
- subprocess和struct模块
subprocess import subprocess obj = subprocess.Popen('dir',shell=True, stdout=subprocess.PIPE, stderr ...
- BZOJ 一句话题解
菜鸡刷题记录 [题号:题解] 1008:简单排列组合 #include <bits/stdc++.h> using namespace std; #define ll long long ...
- 20145219 《Java程序设计》第04周学习总结
20145219 <Java程序设计>第04周学习总结 教材学习内容总结 继承 继承就是避免多个类间重复定义共同行为. 面向对象中,子类继承父类,就是把程序中相同的代码部分提升为父类. R ...
- NOIP 能量项链
描述 在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有N颗能量珠.能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数.并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定等于 ...
- Madplay移植到mini2440开发板【转】
本文转载自:https://blog.csdn.net/simanstar/article/details/24035379 madplay交叉编译 交叉编译器:arm-linux-gcc 3.4.1 ...
- SpringBoot MockMVC
使用MockMvc,我们可以完成基于RESTful风格的SpringMVC的测试,我们可以测试完整的Spring MVC流程,即从URL请求到控制器处理,再到视图渲染都可以测试. @RunWith(S ...