cesium加载离线tms切片

参考:https://www.jianshu.com/p/7b5476d8a7f6   http://www.cnblogs.com/mazhenyu/p/8494094.html

1、软件环境:太乐地图下载器4.9破解版;Cesium-1.44

2、太乐地图下载器上下载切片,范围是-180,180,-90,90,导出选择 瓦片:TMS,图片格式选择png

3、修改tile.xml名称为tilemapresource.xml

4、添加web.config文件,内容为:

<?xml version="1.0" encoding="UTF-8"?>

<configuration>

<system.webServer>

<httpProtocol>

<customHeaders>

<add name="Access-Control-Allow-Origin" value="*" />

<add name="Access-Control-Allow-Methods" value="GET,POST,PUT,DELETE,HEAD,OPTIONS" />

<add name="Access-Control-Allow-Headers" value="Content-Type,api_key,Authorization,X-Requested-With" />

</customHeaders>

</httpProtocol>

</system.webServer>

</configuration>

5、把上面的切片文件放在Test目录下,结构如下:

6、把Test文件夹下的内容发布为应用程序,如下:

7、打开Cesium.js后搜索代码行,有一个createDefaultImageryProviderViewModels函数,里面加载在线地图服务近10多种,其中一些就是Bing地图,还有其他互联网在线地图商提供的地图服务。由于我的场景是物理隔绝的网络,即不能使用在线地图服务,因此,全部将这些代码注释掉,返回空的providerViewModels。 

调用代码为:

 var url = 'http://localhost:80/test'; // tms 瓦片地址
    var viewer = new Cesium.Viewer('cesiumContainer',
        {
            imageryProvider: new Cesium.createTileMapServiceImageryProvider({
                url: url
            }), baseLayerPicker: false
        });

8、如果想在局部区域显示高清的切片可以通过修改tilemapresource.xml的方式,如上切片到7级,把兴国县的8-17级切片拷贝过去,然后在xml中添加8-17级的等级信息,如下所示:

 

9、这样在兴国县范围就可以显示8-17级的影像了:

 

posted @ 2018-04-18 18:13  nygfcn  阅读(4117)  评论(0编辑  收藏  举报