Web GIS离线解决方案

1、背景

在离线环境下(局域网中)的GIS系统中如何使用地图?这里的地图主要指的是地图底图,有了底图切片数据,我们就可以看到地图,在上面加上自己的业务数据图层,进行相关操作。

要在离线环境下看到GIS地图,就要有底图切片数据,地图的底图切片数据在一定时间内是不会变化的,可以使用一些地图下载器下载地图切片,如这个地图下载器

在CS系统中可以基于GMap.Net来做,参考《百度谷歌离线地图解决方案》。

下面介绍下Web系统如何使用GIS切片数据,开发web GIS系统。

2、使用GeoWebCache发布WMS服务

Geowebcache是基于Java的Web开源项目,主要用于缓存各种WMS数据源的地图瓦片,它实现了多种服务接口,包括WMS-C,WMTS,TMS,KML。

Geowebcache作为一个独立的开源项目,在最近被Geosever的几个版本所集成,主要是对发布的WMS图层建立缓存切片。

服务发布步骤:

1)官网下载 geowebcache-1.8.0-war.zip,直接解压得到geowebcache.war文件,将该文件直接拷贝至tomcat目录下的webapps下即可,启动tomcat会对war包进行解压。

2)修改geowebcache的配置文件geowebcache-core-context.xml。该文件在Tomcat的webapps\geowebcache\WEB-INF下,修改如下:

<bean id="gwcXmlConfig" class="org.geowebcache.config.XMLConfiguration">
<constructor-arg ref="gwcAppCtx" />
<!--<constructor-arg ref="gwcDefaultStorageFinder" />-->
    <constructor-arg value="D:\\GisMap\\" />
<!-- By default GWC will look for geowebcache.xml in {GEOWEBCACHE_CACHE_DIR},
         if not found will look at GEOSEVER_DATA_DIR/gwc/
         alternatively you can specify an absolute or relative path to a directory
         by replacing the gwcDefaultStorageFinder constructor argument above by the directory
         path, like constructor-arg value="/etc/geowebcache"
    -->
<property name="template" value="/geowebcache.xml">
<description>Set the location of the template configuration file to copy over to the
        cache directory if one doesn‘t already exist.
</description>
</property>
</bean>

修改gwcXmlConfig实例化时使用固定路径,该路径可以为任意新建路径文件夹。Geowebcache启动之后会检查此文件夹下是否存在gewebcache.xml文件,如果不存在则按模板新建立并读取使用,如果存在则直接读取使用。

3)修改第2步中的gewebcache.xml文件:

<layers>
    <arcgisLayer>
        <name>ARCGIS-Demo</name>
        <tilingScheme>D:\\GisMap\\Layer\\conf.xml</tilingScheme>
        <tileCachePath>D:\\GisMap\\Layer\\_alllayers</tileCachePath>
    </arcgisLayer>
</layers>

在layers节点里添加arcgisLayer节点(默认生成的gewebcache.xml的layers节点有许多其他冗余数据,可删除可保留)。Name节点表示待添加图层的名称(这里配置为ARCGIS-Demo),titlingscheme节点为conf.xml文件的路径,tileCachePath为瓦片数据的路径。

4)瓦片地图的准备

其中conf.xml为配置文件,conf.cdi为显示区域约束文件,_alllayers文件夹下则存放了切片数据,Status.gdb为切片状态情况记录(可直接删除)。

通过瓦片下载器下载瓦片地图,然后生成的切片数据_alllayers文件夹:

L01-L10表示地图缩放级数,按照ArcGIS切片目录组织,切片命名规则也和ArcGIS切片数据命名规则一致。(conf.xml、conf.cdi和_alllayers在同级目录)。

5)启动tomcat,继而启动Geowebcache服务,浏览器访问 localhost:8080/geowebcache,如果一切正确的话可以看到下面的页面

该页面简单说明了Geowebcache的一些情况。

点击“A list of all the layers and automatic demos”连接可以看到下面:

该页面显示了geowebcache.xml配置的图层信息。图中可以看到只配置了一个名字为ARCGIS-Demo的图层,使用的EPSG3857坐标系,发布的图片格式为png格式,点击png链接即可看到瓦片地图。

这里地图显示的级别和坐标系配置都来自conf.xml文件。这里的前端js使用的是Openlayers。

个人比较喜欢leaflet这个GIS javascript库,使用leaflet加载GeoWebCache发布的服务:

var mapCenter = new L.LatLng(32.1280, 118.7742); //南京
var map = new L.Map(‘map‘, {
    center : mapCenter,
    zoom : 9
});

varwmsLayer = L.tileLayer.wms("http://localhost:8080/geowebcache/service/wms", {
        layers: ‘ARCGIS-Demo‘,
        format: ‘image/png‘
});
wmsLayer.addTo(map);

3、使用自定义的Http服务

GeowebCache本质上就是个Http服务,通过请求参数获取配置文件中的路径中的切片数据,返回给请求方。

我们可以自己写个独立的Http服务,从数据库中读取切片数据返回给请求方。

切片请求地址类似:http://localhost:8899/1818940751/{z}/{x}/{y}

其中“1818940751”是下载器下载的地图类型,z/x/y分别是zoom和地图切片行列号。

前端js使用leaflet加载:

var amapNormalUrl = ‘http://localhost:8899/788865972/{z}/{x}/{y}‘;
var amapNormalLayer = new L.TileLayer(amapNormalUrl, {
    minZoom : 1,
    maxZoom : 18,
    attribution : ‘高德普通地图‘
});

var mapCenter = new L.LatLng(32.1280, 118.7742); //南京
var map = new L.Map(‘map‘, {
        center : mapCenter,
        zoom : 9,
        minZoom: 1,
        maxZoom: 18,
        layers : [ amapNormalLayer ]
});

前端js可以自定义投影Projection算法,而国内google地图、高德地图和腾讯地图都是标准的墨卡托投影,可以直接用leaflet加载。

配合一些画图插件,再配合一些后台POI检索服务,如:

《使用Lucene索引和检索POI数据》

《使用Solr进行空间搜索》

则能做出如下效果:

总结:介绍了如何使用下载的离线切片数据在局域网环境下发布Web GIS地图服务,前端配合使用一些js插件,实现web下空间数据的检索。

参考:

http://www.cnblogs.com/luxiaoxun/p/4454880.html

http://www.cnblogs.com/luxiaoxun/p/5020247.html

时间: 2024-08-01 22:48:04

Web GIS离线解决方案的相关文章

符合公司GIS开源解决方案的探讨

1.前言 这一周,我对GIS开源解决方案中涉及到的开源软件以及相关技术和流程做了一些初步的探索,也了解了一下其他公司利用开源方案做的比较成熟的案例.这里我将一些技术关键点的预研做一下总结,同时对其他公司开源成功案例做一个分析,并提出个人认为目前最符合公司实际的GIS开源解决方案. 2.技术关键点预研 2.1空间数据入库(postgreSQL+postGIS) 利用postGIS将shp数据导入到postgreSQL中: 2.2空间数据编辑(uDig) 导入postgreSQL中的空间数据,可以进

VS2012 无法启动IIS Express Web服务器的解决方案

本文转载:http://blog.csdn.net/hongleidy5000/article/details/22732621 打开VS2012解决方案资源管理器 -> 点选 Web 项目选择 -> 属性 -> Web -> 选择"使用 Visual Studio 开发服务器" -> 选中"自动分配端口" . 再次运行Web项目,大功告成! 如图设置 VS2012 无法启动IIS Express Web服务器的解决方案,布布扣,bub

基于Arcgis for Js的web GIS数据在线采集简介

在前一篇博文"Arcgis for js之WKT和geometry转换"中实现了wkt和geometry之间的相互转化,博文原文地址为:http://blog.csdn.net/gisshixisheng/article/details/44057453.在本节,接上文,简单讲述基于Arcgis for Js的web GIS数据在线采集. 实现数据的在线采集,最主要的是数据的存储,即将采集到的数据的geometry对象保存下来,并后续可以转换为shp数据.在本文,我的处理方式为将前段绘

Esri:为Web GIS注入新内涵

纵观近些年IT与空间技术的发展,云计算.大数据.实时信息.LBS.无人机.倾斜摄影等新技术层出不穷:互联网基础设施建设成绩瞩目,宽带成为国家战略性公共基础设施. GIS(地理信息系统)作为空间信息分析和处理的重要工具,其应用需求也在发生着巨大的变化.在线的内容.便捷的协作.随时随地的多设备访问.大众化的应用等,已经成为GIS应用的新潮流.新趋势. GIS与最新的主流IT架构和技术的融合,催生了新一代的Web GIS.以空间数据及其处理.分析和表达为核心内容的Web Service的广泛创建.分享

搭建简易Web GIS网站:使用GeoServer+PostgreSQL+PostGIS+OpenLayers3

搭建简易Web GIS网站:使用GeoServer+PostgreSQL+PostGIS+OpenLayers3 1         服务器搭建 使用Tomcat需要先安装Java.从Oracle官方网站下载Java最新版本: http://www.oracle.com/technetwork/java/javase/downloads/index.html 安装完成Java后,需要配置环境变量.具体方法请自行百度.安装成功后可以下载服务器了. 从Tomcat官方网站下载最新的版本,在Windo

介绍一个企业Web应用的解决方案网站

活字格是一款企业 Web 应用生成器,使用了类 Excel 的设计界面,只要你会 Excel,通过简单的拖拽操作,就能快速制作出一个 Web 信息管理系统.无需专业软件知识,没有任何技术门槛,轻松实现各行业的数据信息管理,降低你的管理成本,提升你的工作效率. 活字格的网站是一个企业web应用的解决方案网站,从活字格网站中能够获得很多有关企业web应用制作的信息. 介绍页面 从介绍页面,可以全面的了解活字格在设计企业Web应用方面所具有的优势. 可视化设计,会Excel就能开发Web应用 可灵活定

[ArcGIS 10.3重磅来袭]ArcGIS 10.3 惊艳登场,打造新一代Web GIS最强“芯”

今天是2015年的第一个工作日,咱来重磅出击一下. 美国时间2014年12月10日,ArcGIS 10.3正式发布.这是Esri自2012年发布ArcGIS 10.2之后,历时两年的成果结晶.ArcGIS 10.3,隆重推出以用户为中心(Named User)的全新授权模式,超强的三维"内芯",革新性的桌面GIS应用,可配置的服务器门户,即拿即用的Apps,更多应用开发新选择,数据开放新潮 流,为构建新一代Web GIS应用提供了更强有力的核"芯"支持. 现将Arc

?Web安全测试解决方案

Web安全测试解决方案 介绍常见的Web安全风险,Web安全测试方法.测试基本理论和测试过程中的工具引入

ArcGIS平台,打造可落地的新一代Web GIS

新一代Web GIS的内涵 "新一代Web GIS",是Esri在新的GIS技术和时代背景下,所提出的一种以Web为中心的.全新的GIS应用模式,在这种模式中,资源和功能都进一步整合,GIS服务的提供者以Web的方式提供资源和功能,而用户则采用多种终端随时随地访问这些资源和功能.在这种模式下,GIS平台变得更加简单易用.开放和整合,使得GIS为组织机构所有人使用成为现实,为"Web GIS"赋予了全新的内涵.ArcGIS平台倡导One ArcGIS的理念,不再受限于