arcgis发布多层级的底图切片服务的技术已经相对成熟,但是arcgis不开源,因此最近在研究geoserver, geoserver相对比较轻量,又是开源的软件,感觉也挺好用,就是插件比较多,版本比较多,在配置的时候会消耗很多时间。最近在研究geoserver发布天地图地图的切片服务,看了网上很多文档,但是还是遇到很多坑,记录下采坑的情况,本地安装的是geoserver 1.15.2。

总体来说有三种方法,多层级MBTiles 、多层级地图大图拼接、发布arcgisserver切好的切片缓存数据。

一、多层级MBTiles规范数据发布

配置MBTiles扩展包,需要下载 geoserver-2.15-SNAPSHOT-wps-plugin 和 geoserver-2.15-SNAPSHOT-mbtiles-plugin 包,本地安装哪个geoserver的版本,就去下载对应的版本,下载完成后把解压的jar包放到geoserver安装路径下webapps/geoserver/WEB-INF/lib文件夹内,重启geoserver。

配置成功后在数据存储的目录会有MBTiles的扩展数据源。

最终因为目录文件的问题没有选择这个方法进行切片。

二、多层级地图大图拼接格式

我们所拿到的数据是天地图各层级构建好金字塔后的tif文件,每个层级对应一份tif文件,这个主要就是要解决多层级的问题。

1、首先我们需要在Gridsets里添加下载的天地图各层级所对应的比例尺和坐标;

2、然后可以通过数据存储的GeoTIFF格式的数据加载各层级的天地图tif文件,对每个层级的文件都进行切片。也就是假设是第8层级的数据,我们只切8级的瓦片,第9级的数据,我们只切9级的瓦片。

3、所有层级的瓦片都切好后,去切片路径下将多个文件夹内的切片服务合并成一个完整的目录,然后直接去tile caching中选择完整目录的服务预览即可。

这种方法完全可以实现,但是预览的时候遇到了bug,缩放的时候会有经纬度的闪跳,后期解决了再更新。

三、GeoWebCache插件发布ArcGIS切片服务

我本地安装的是geoserver的1.15版本,本身已经继承了geowebcache的发部分功能,但是想调用arcgisserver的瓦片,还是需要在本地安装geowebcache插件,我一开始用的是与geoserver版本一致的1.15版本,但是测试后有问题, 报503错误。网上查了很多资料,最终确定用相对比较稳定的geowebcache1.10.0(war包)版本,完美发布。

1、下载好geowebcache1.10.0后,解压并将其拷贝到webapps的目录下

2、重新启动geoserver,在浏览器中一次输入http://localhost:16080/geoserver/web/ 和http://localhost:16080/geowebcache/home,如果出现下图即安装成功。

3、配置geowebcache的缓存目录: geoserver-2.15.2\webapps\geowebcache\WEB-INF目录下,打开web.xml并在context-param下添加节点,然后重启geoserver,在E:\geoserver\arcgis目录下会自动生成如下文件:

  <context-param><param-name>GEOWEBCACHE_CACHE_DIR</param-name><param-value>E:\geoserver\arcgis</param-value></context-param>

4:配置arcgis server的缓存切片路径

arcgisserver切片缓存的目录如上图所有,我们需在第3点生成geowebcache.xml中配置缓存路径,在layers节点下添加代码:

 </arcgisLayer><arcgisLayer><name>tdtLayer_map</name><tilingScheme>D:\arcgisserver\directories\arcgiscache\eastChinaSea_eastSeaMap\Layers\Conf.xml</tilingScheme><tileCachePath>D:\arcgisserver\directories\arcgiscache\eastChinaSea_eastSeaMap\Layers\_alllayers</tileCachePath><hexZoom>false</hexZoom></arcgisLayer>

网上很多教程说需要更改Conf.xml和conf.cdi文件,但是经过测试,是不需要改的。

重启geoserver服务,如果能够正常访问http://localhost:16080/geowebcache/home,则表示配置成功,如果不行,则去geoserver-2.15.2\webapps\geowebcache\WEB-INF目录下,在geowebcache-core-context.xml文件中添加代码:

<bean id="gwcArcGIGridsetConfigutation" class="org.geowebcache.arcgis.layer.ArcGISCacheGridsetConfiguration"/>

5、预览geowebcache服务:打开http://localhost:16080/geowebcache/home ,点击

A list of all the layers and automatic demos进入图层选择:

点击png进行预览

geoserver (三)发布多层级天地图、谷歌地图、高德地图等底图切片服务相关推荐

  1. android java 经纬度(国标WGS84/gps84/硬件/谷歌地球卫星,Gcj02/腾讯地图/高德地图,Bd09/百度地图)之间互换

    android java 经纬度(国标WGS84/gps84/硬件/谷歌地球卫星,Gcj02/腾讯地图/高德地图,Bd09/百度地图)之间互换 前言: 由于项目需要,很多时候都需要地图经纬度直接的转换 ...

  2. ios html调起高德地图,iOS 调用百度地图, 高德地图,苹果自带的地图

    在你项目的info.plist添加 LSApplicationQueriesSchemes 为KEY 类型为NSArray;添加对应的白名单 高德:iosamap百度:baidumap - (void ...

  3. 天地图<——>高德地图互转坐标 工具类

    1.首先弄明白几种在线地图的坐标系: (1)天地图:CGCS2000,2000国家大地坐标系:我们其实很多时候直接用WGS84的坐标来代替CGCS2000坐标.因为CGCS2000的定义与WGS84实 ...

  4. Mysql 高德转天地图经纬度sql ,高德地图GCJ-02火星坐标系与GPS的WGS-84坐标系转换

    -- mysql高德转天地图 SELECT -- 经度 xlongitude * 2 -(xlongitude +(((300.0 + (xlongitude - 105.0) + 2.0 * (yl ...

  5. android 百度地图高德地图开发

    实现百度地图和高德地图导航(方式) 如图:根据第三方地图来实现不同的出行方式 第一步:首先判断手机是否安装第三方导航应用如百度地图或者是高德地图 - 没有安装则提示安装应用 /*** 通过包名获取应用 ...

  6. 百度地图高德地图横向评测nbsp;出…

    要说是现在的导航APP,<Google Maps>是当之无愧的大哥,可惜在由于先天的水土不服,它在国内并没有得到在海外的好成绩,至今国内的导航APP市场还在战国时代,各路豪杰各显其能.今天 ...

  7. gcoord: 转换WGS84、GCJ02、BD09坐标,解决百度地图高德地图坐标系不统一的问题

    做过地图相关开发的同学肯定会遇到这样一个问题:同样的经纬度坐标,在百度地图和高德地图上位置不一样. 关于坐标系 我们通常用经纬度来表示一个地理位置,但是由于一些原因,我们从不同渠道得到的经纬度信息可能 ...

  8. JS百度地图高德地图API的接入与使用

    1.实现功能 1.显示地图 移动地图 缩放地图 拖拽地图 显示地图小部件 2.添加删除自定义覆盖物(服务区) 点弹跳动画 添加文字标签/图标/ 点聚合 3.点聚合功能 4.弹出文字信息窗口 弹出图文信 ...

  9. html5 调用高德地图,高德地图在h5项目中的集成(点标记)

    关于高德地图在项目中的集成,网上已经有很多相关的很优秀的文章了,故本篇内容仅用于参考和巩固. 1.使用高德地图之前需要在高德开放平台(https://lbs.amap.com/dev/index)创建 ...

最新文章

  1. 迪杰斯特拉算法c++_《算法图解》学习记录7--迪杰斯特拉算法
  2. C++ Primer 5th笔记(6)chapter6 函数:参数匹配
  3. leetcode 263, 264, 1201, 313. Ugly Number I, II, III, Super Ugly Number(leetcode 丑数问题合集)
  4. python程序 爱意_[Python]快学学怎么Python爬一段情书送女朋友吧
  5. jQuary总结11:jQuery插件封装---jQuery封装 手风琴 动画插件
  6. Liaoning Province--保三成功
  7. Spring中利用配置文件和 value注入属性值
  8. jQuery的实用特性扩展类库:jQuery++
  9. 1-2月热点:度目发布煤矿电子封条解决方案,AI助力生产安全,推进煤矿智能化建设
  10. INVT英威腾GD200A系列变频器使用PID实现恒压供水功能的相关参数设置及接线
  11. 基于matlab的gmsk,基于MATLAB的GMSK仿真分析-移动通信系统三级项目报告
  12. 十三号星期五题解 【模拟】
  13. iOS 微信和QQ分享显示“未验证应用”问题处理(尤其是Swift 中 continueUserActivity 不执行问题)
  14. “红黑树”,我一脸懵逼......
  15. 修炼你的《九阳神功》行走江湖
  16. auto CAD 二次开发 c#.net 之JIG画多段线(polyline)
  17. 书翻页效果php,Css实现翻书效果
  18. 在Vf中如何将Excel数据导入(用Vf来导)?
  19. 语音相关的数据集-5个数据集
  20. 未能加载或程序集“XXXX,Version=0.0.0.0,Culter=neutral,PublicKeyToken=null”或它的某一个依赖项。试图加载格式不正确的程序。...

热门文章

  1. String详解(intern、StringBuffer、StringBuilder)
  2. java增强for循环_Java中增强for循环的实现原理和坑详解
  3. vue 在线聊天实战范例(含选择发送表情、图片、视频、音频,自定义右键快捷菜单,一键复制,左右聊天气泡)
  4. 美しい女の子が一言作者弗不安
  5. 支付宝人脸注册业务流程
  6. JZOJ 5344. 摘果子
  7. Error response from daemon: conflict: unable to delete 6f8214d56bfc (cannot be forced) - image has d
  8. Android基础-LruCache原理解析
  9. 使用bootstrap模板开发,网页打开很慢的解决办法
  10. python excel sheet个数_python得到一个excel的全部sheet标签值方法