Tomcat发布瓦片TMS数据,Cesium加载显示:还是跨域处理

1、使用某地图下载器下载地图数据

Tomcat发布瓦片TMS数据,Cesium加载显示:还是跨域处理

2、点击右上角“导出”按钮,如上右图。存储格式选择“瓦片:tms”,图片格式png即可,选择保存位置,导出。

Tomcat发布瓦片TMS数据,Cesium加载显示:还是跨域处理

3、将导出的瓦片目录复制到tomcat wabapps目录下,文件名ArcGIS_TMS,下面0-7级瓦片。

4、Cesium中加载

 var viewer = new Cesium.Viewer('cesiumNCSE');

    var layers = viewer.imageryLayers;
    var provider = new Cesium.WebMapServiceImageryProvider({
        url: 'http://localhost:8082/geoserver/wms',
        layers: 'nurc:Arc_Sample',
        parameters: {
            service : 'WMS',
            format: 'image/png',
            transparent: true,
        }
    });
    layers.addImageryProvider(provider);

    var blackMarble = layers.addImageryProvider(Cesium.createTileMapServiceImageryProvider({
        url : 'http://localhost:8082/ArcGIS_TMS'
    }));

5、如果Cesium无法显示,则需要对Tomcat做跨域处理,做法如下:

首先下载cors-filter-2.5.jar和java-property-utils-1.9.1
1、把这两个jar包放在tomcat的lib下。
2、在conf文件夹下找到web.xml。
3、在web.xml中添加如下代码:

<filter>
       <filter-name>CORS</filter-name>
       <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
       <init-param>
        <param-name>cors.allowOrigin</param-name>
           <param-value>*</param-value>
       </init-param>
       <init-param>
        <param-name>cors.supportedMethods</param-name>
           <param-value>GET, POST, HEAD, PUT, DELETE</param-value>
       </init-param>
       <init-param>
        <param-name>cors.supportedHeaders</param-name>
           <param-value>Accept, Origin, X-Requested-With, Content-Type, Last-Modified</param-value>
       </init-param>
       <init-param>
           <param-name>cors.exposedHeaders</param-name>
           <param-value>Set-Cookie</param-value>
       </init-param>
       <init-param>
           <param-name>cors.supportsCredentials</param-name>
           <param-value>true</param-value>
       </init-param>
   </filter>

   <filter-mapping>
       <filter-name>CORS</filter-name>
       <url-pattern>/*</url-pattern>
   </filter-mapping>


6、大功告成。终于显示。

Tomcat发布瓦片TMS数据,Cesium加载显示:还是跨域处理

7、切记:cesium加载发布的数据需要做跨域处理