GeoServer发布ArcMap配图
创始人
2025-05-31 06:19:58

项目过程中遇到一个需求:leaflet要使用自定义的底图。现在配图一般都会用ArcMap,但是不能使用ArcGIS Server发布(没买)。所以需要研究一下怎样把ArcMap配的地图用GeoServer发布出去。

首先需要明确一点,动态地图服务(WMS)想都不要想,他是实时渲染的,需要数据+样式,只能发布瓦片服务。

一、数据准备

数据准备分两步:
第一步,确定数据和mxd文件都是WGS 1984 Web Mercator Auxiliary Sphere(WKID:3857)坐标系。我这里是需要使用Leaflet加载,3857是最方便的。其他情况也需要尽量保证数据和配图都是投影坐标系,否则GeoServer的GeoWebCache插件不好处理。
第二步:切片获得arcgis瓦片。这里有两种方式,一种是发布到ArcGIS Server等待其切片完成,一种是分享为切片包。使用第二种方式需要在ArcMap里打开相关的选项:Customize>Sharing>Enable ArcGIS Runtime Tools,这里需要注意,很多同志ArcGIS10.4以后的版本是通过直接覆盖AfCore.dll破解而不是通过License破解的,这种破解方式这个ArcGIS Runtime Tools是用不了的。

无论采取什么切片方式,如果最终使用leaflet加载,推荐使用用自带的Arcgis Online…切片方案,可适当调整级别,不然会很大很大。如果有其他的需求,可以自己使用ArcGIS工具箱里的切片方案制作工具来做一个。

最后如果使用ArcGIS Server切片,就将切片文件从缓存文件夹里拷出来,如果分享成切片包,就将切片包改成.zip文件,将切片文件从里面解压出来。拷出来需要有以下这些东西。

二、配置GeoServer

  1. 给GeoServer设置缓存路径,在GeoServer文件夹下打开webapps/geoserver/WEB-INF/web.xml,在里面加入如下代码,其中param-value下填入缓存要存放的路径,保存。然后将ArcGIS切片文件拷进这个文件夹。
GEOWEBCACHE_CACHE_DIR/home/zxhm/geoserver/cache_dir
 
  1. 随后启动GeoServer,GeoServer会在缓存路径下生成geowebcache.xml文件,在里面的layers节点下面加入如下代码。其中tilingScheme节点下填入要发布的切片的conf.xml路径,里面主要是瓦片配置。tileCachePath节点下加入_alllayers的路径。
hbw_tiled/home/zxhm/geoserver/cache_dir/hbw_tiled/conf.xml/home/zxhm/geoserver/cache_dir/hbw_tiled/_alllayersfalse

三、配置GeoWebCache

GeoServer是不支持arcgisLayer的,因此需要借助GeoWebCache插件。虽然比较新的版本是自带GeoWebCache插件的,但是他又把里面识别arcgisLayer的功能给摘了出去,所以需要配置一下。

  1. 在这里下载一个完整版的GeoWebCache,把里面的geowebcache.war用压缩软件打开,从/WEB-INF下解压出geowebcache-arcgiscache-context.xml,从/WEB-INF/lib种解压出gwc-arcgiscache-x.x.x.jar
  2. 打开GeoServer文件夹webapps/geoserver/WEB-INF/lib,将gwc-arcgiscache-x.x.x.jar拷到里面。找到gs-gwc-x.x.x.jar,用压缩软件打开,将geowebcache-arcgiscache-context.xml加入其中。
  3. gs-gwc-x.x.x.jar中找到geowebcache-servlet.xml,在里面加入

找到geowebcache-core-context.xml,在里面加入


  1. 启动GeoServer,检查切片图层里是否有在第二步发布的图层。选择坐标系和格式可以看看能否预览。

四、Leaflet加载

Leaflet加载就是普普通通加载WMTS了,代码如下:

const params = 'layer=hbw_tiled&style=&tilematrixset=EPSG:3857_hbw_tiled&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image/png'
L.tileLayer(`${geoServerBase}gwc/service/wmts?${params}&TileMatrix=EPSG:3857_hbw_tiled:{z}&TileCol={x}&TileRow={y}`,{maxZoom: 18,minZoom: 12,
}).addTo(map)

相关内容

热门资讯

世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
吸猫伐是什么意思 吸猫是吸哪里 作为铲屎官,相信对于网络上流行的各种与猫咪相关的梗都是了然于心的,什么吸猫啦,撸猫啦,云养猫啦……等...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...