使用GeoWebCache發布ArcGIS切片地圖(實現高清電子地圖)


使用GeoWebCache發布ArcGIS切片地圖(實現高清電子地圖)


一、先看效果

圖1:geoserver發布的電子地圖(模糊)

圖2:GeoWebCache發布的ArcGIS切片電子地圖(高清)

image

image

二、版本信息

Centos系統:CentOS Linux release 7.3.1611 (Core)

Tomcat:apache-tomcat-8.5.65

GeoWebCache:geowebcache-1.18.1


三、下載安裝

1、Tomcat下載地址:https://tomcat.apache.org/download-80.cgi,安裝過程這里不再贅述,不懂的可以百度。

image

2、GeoWebCache下載地址:https://sourceforge.net/projects/geowebcache/files/geowebcache/1.18.1/

image

3、GeoWebCache部署:把下載好的 geowebcache.war文件直接放入Tomcat里webapp目錄,如:/usr/local/apache-tomcat-8.5.65/webapps

image

四、使用Bigemap下載ArcGIS瓦片數據

image

下載到的數據展示:

image

把下載好的數據上傳到服務器指定目錄:/usr/local/apache-tomcat-8.5.65/geowebcache

五、GeoWebCache的配置

1、新建緩存配置目錄(姑且這么叫),並修改/usr/local/apache-tomcat-8.5.65/webapps/geowebcache/WEB-INF文件夾下的文件web.xml,在</context-param>節點后添加如下節點,記錄新建的目錄:

<context-param>         
    <param-name>GEOWEBCACHE_CACHE_DIR</param-name>         
    <param-value>/usr/local/apache-tomcat-8.5.65/geowebcache/arcgis</param-value>   
  </context-param>

param-value是你所建的文件夾,本文新建了個geowebcache和arcgis文件夾,可任意命名,只要與web.xml添加的節點中保持一致。

2、重啟tomcat服務

會發現該目錄下自動生成了幾個文件,注意這里的geowebcache.xml

image

3、添加ArcGIS切片的路徑

修改在上文出現的/usr/local/apache-tomcat-8.5.65/geowebcache/arcgis/geowebcache.xm文件,在<layer>…</layer>節點中添加如下節點:

注意:啟動服務時該配置文件中所有服務對應的切片方案和切片路徑必須都存在,否則打不開GeoWebCache主頁,顯示“503...”,要刪去不存在的arcgisLayer節點,並重啟服務!

<!--
    tilingScheme:具體某個瓦片的配置文件的地址
    tileCachePath:具體瓦片圖片的文件夾地址
-->

<arcgisLayer> <name>城關鎮_電子地圖_瓦片_ArcGis</name> <tilingScheme>/usr/local/apache-tomcat-8.5.65/geowebcache/城關鎮_電子地圖_瓦片_ArcGis/瓦片_ArcGis/conf.xml</tilingScheme> <tileCachePath>/usr/local/apache-tomcat-8.5.65/geowebcache/城關鎮_電子地圖_瓦片_ArcGis/瓦片_ArcGis/_alllayers</tileCachePath> <hexZoom>false</hexZoom> </arcgisLayer>

image

城關鎮_電子地圖_瓦片_ArcGis為服務名,GeoWebCache服務頁面中可看到改名字,這里隨便起的。conf.xml就是bigemap下載后的配置文件。

4、/usr/local/apache-tomcat-8.5.65/webapps/geowebcache/WEB-INF/geowebcache-core-context.xml 需要加以下代碼

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

如果不添加此bean對象,啟動時則會報以下錯誤:

15 Apr 14:35:15 (localhost-startStop-1) WARN [support.XmlWebApplicationContext] - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gwcXmlConfig' defined in ServletContext resource [/WEB-INF/geowebcache-core-context.xml]: Invocation of init method failed; nested exception is java.lang.IllegalStateException: No ArcGISCacheGridsetConfiguration could be found
15 Apr 14:35:15 (localhost-startStop-1) ERROR [context.ContextLoader] - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'gwcXmlConfig' defined in ServletContext resource [/WEB-INF/geowebcache-core-context.xml]: Invocation of init method failed; nested exception is java.lang.IllegalStateException: No ArcGISCacheGridsetConfiguration could be found
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1771)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:593)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515)
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:226)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:860)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:878)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550)
    at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:401)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:292)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:103)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4705)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5168)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:743)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:719)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1015)
    at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1895)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalStateException: No ArcGISCacheGridsetConfiguration could be found
    at org.geowebcache.arcgis.layer.ArcGISCacheLayer.getGridsetConfiguration(ArcGISCacheLayer.java:256)
    at org.geowebcache.arcgis.layer.ArcGISCacheLayer.createGridSubsets(ArcGISCacheLayer.java:237)
    at org.geowebcache.arcgis.layer.ArcGISCacheLayer.initializeInternal(ArcGISCacheLayer.java:205)
    at org.geowebcache.layer.AbstractTileLayer.initialize(AbstractTileLayer.java:332)
    at org.geowebcache.config.XMLConfiguration.initialize(XMLConfiguration.java:891)
    at org.geowebcache.config.XMLConfiguration.afterPropertiesSet(XMLConfiguration.java:844)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1830)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1767)
    ... 25 more


六、瀏覽服務

再次重啟GeoServer,進入GeoWebCache主頁:http://192.168.8.190:8080/geowebcache

image

image

image


參考網站:

https://blog.csdn.net/hellfire2007/article/details/80876785

https://blog.csdn.net/wt346326775/article/details/53019487

https://my.oschina.net/u/4405061/blog/3327068

https://www.cnblogs.com/znlgis/p/3487663.html

https://www.cnblogs.com/Joetao/articles/4026815.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM