离线瓦片地图发布的解决方案

基于业务需求,需要有离线的地图引擎,根据需求判定所需的地图功能较为简单没必要使用到 geoserver 只需要GeoWebCache 即可,
瓦片制作采用全能电子地图下载器 前端地图展示采用 leaflet

切片下载

打开全能电子地图下载器 选择需要下载的区域,并在左上角勾选要下载的级别 级别越高 下载的大小是指数上升的,特别是20级以上,所以需要自己选择合适的级别上限和区域大小,
下载完成后点击打开 工具-地图拼接 选择刚下载的任务文件 导出格式为AcrGIS Server 缓存

部署

下载 GeoWebCache 扔进 tomcat里 启动 修改缓存目录 放入切片 在缓存配置文件中配置切片 重启 即可

注意事项

  1. 切片大小要控制好 最后地图拼接出的两文件conf.cdi 和conf.xml 可能格式是utf-8-dom 得用编辑器转成utf-8 否则可能启动时候报错
  2. GeoWebCache的缓存目录 可修改 也可以不修改,最好是修改, 不修改的话 其位置可以在启动后访问页面里查看,修改的方法有两种 :改web.xml 和改geowebcache-core-context.xml
  3. AcrGIS 这种切片 在geowebcache-core-context.xml 还要单独配置一个bean 放 beans 标签内即可

代码示例


<layers>
	
  <arcgisLayer>
  	
    <name>jiaocname>
    <tilingScheme>D:/gis/gis/map/jiaoc/conf.xmltilingScheme>
    <tileCachePath>D:/gis/gis/map/jiaoc/_alllayerstileCachePath>
arcgisLayer>
...........省略...........
layers>


	<beans>
	.........省略........
	
  <bean id="gwcArcGIGridsetConfigutation" class="org.geowebcache.arcgis.layer.ArcGISCacheGridsetConfiguration"/>
  <bean id="gwcXmlConfig" class="org.geowebcache.config.XMLConfiguration">
    <constructor-arg ref="gwcAppCtx" />
	
	
    
    
    
    <constructor-arg value="D:\\gis\\gis\\map" />
    <property name="template" value="/geowebcache.xml">
      <description>.......省略.description>
    property>
  bean>
  .............省略
beans>


 
<web-app>
.............省略
   <context-param>
   
      <param-name>GEOWEBCACHE_CACHE_DIRparam-name>
      
      <param-value>D:\.......\mapparam-value>
    context-param>
.............省略
web-app>

重启即可 有时候自带的地图demo查看可能查看不到地图 可能自身有BUG 可以用leaflet查看

  <head>
    <title>地图测试title>
	
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    
   <link rel="stylesheet" type="text/css" href="leaflet/leaflet.css">
   
    
    <script type="text/javascript" src="leaflet/jquery.js">script>
    <script type="text/javascript" src="leaflet/leaflet.js">script>
    
    
    <style type="text/css">
       #mapid { height: 768px;width: 768px; }
    style>

  head>
<body>
    <div id="mapid">div>
    <div id="xy">div>
  body>
<script type="text/javascript">
	//地图
 	var map = new L.Map("mapid", {
            zoom: 7,
            minZoom:6,
            maxZoom:19,
            center: [26.72169,119.57932],//可以在地图查看器上定位 先纬度后经度
            boxZoom: true
        });
        
        //经纬度实时显示 
        map.on('mousemove', function(e) {
		  console.log(e);
		  $('#xy').text('纬度:' + e.latlng.lat + '\n经度:' + e.latlng.lng);
		});
		

        //地图图层
	  var wmsLayer= L.tileLayer.wms("http://127.0.0.1:端口/geowebcache/service/wms", {
            layers: 'jiaoc',//需要加载的图层 上面定义的名称
            format: 'image/png',//返回的数据格式
            transparent: true,
            //crs: L.CRS.EPSG4326
        });
        map.addLayer(wmsLayer);
script>

下载

geowebcache
全能地图下载器 绿色

leaflet工具栏
效果

你可能感兴趣的:(中间件技术)