今天刚好有时间看了这个问题,关于Cesium加载TMS切片。要想实现这个功能,首先要明确使用
ImageryProvider
-
ArcGisMapServerImageryProvider
-
BingMapsImageryProvider
-
OpenStreetMapImageryProvider
-
TileMapServiceImageryProvider
-
GoogleEarthEnterpriseImageryProvider
-
GoogleEarthEnterpriseMapsProvider
-
GridImageryProvider
-
MapboxImageryProvider
-
MapboxStyleImageryProvider
-
SingleTileImageryProvider
-
TileCoordinatesImageryProvider
-
UrlTemplateImageryProvider
-
WebMapServiceImageryProvider
-
WebMapTileServiceImageryProvider
中的哪个子类,TMS,顾名思义,使用的是TileMapServiceImageryProvider
其中核心代码如下:
var layers = viewer.scene.imageryLayers;
var tmsLayer = layers.addImageryProvider(
new Cesium.TileMapServiceImageryProvider({
url : 'http://127.0.0.1:8020/spgisgdp/preData/BIGMAP_TMS' //url为文件夹地址
})
);
url为你下载的tms数据的路径。数据有了,代码有了,接着进入调试,调试中会报一个错“tilemapresource.xml”不存在。此xml就是一个关于切片层级的配置文件,在此我提供tilemapresource.xml的具体代码:
<?xml version="1.0" encoding="utf-8"?>
<TileMap version="1.0.0" tilemapservice="http://tms.osgeo.org/1.0.0">
<Title>NE2_HR_LC_SR_W_DR_recolored.tif</Title>
<Abstract></Abstract>
<SRS>EPSG:4326</SRS>
<BoundingBox miny="-90.00000000000000" minx="-180.00000000000000" maxy="90.00000000000000" maxx="180.00000000000000"/>
<Origin y="-90.00000000000000" x="-180.00000000000000"/>
<TileFormat width="256" height="256" mime-type="image/png" extension="png"/>
<TileSets profile="geodetic">
<TileSet href="0" units-per-pixel="0.70312500000000" order="0"/>
<TileSet href="1" units-per-pixel="0.35156250000000" order="1"/>
<TileSet href="2" units-per-pixel="0.17578125000000" order="2"/>
<TileSet href="3" units-per-pixel="0.08789062500000" order="3"/>
<TileSet href="4" units-per-pixel="0.0439453125" order="4"/>
<TileSet href="5" units-per-pixel="0.02197265625" order="5"/>
<TileSet href="6" units-per-pixel="0.010986328125" order="6"/>
<TileSet href="7" units-per-pixel="0.0054931640625" order="7"/>
<TileSet href="8" units-per-pixel="0.00274658203125" order="8"/>
<TileSet href="9" units-per-pixel="0.001373291015625" order="9"/>
<TileSet href="10" units-per-pixel="0.0006866455078125" order="10"/>
<TileSet href="11" units-per-pixel="3.4332275390625e-4" order="11"/>
<TileSet href="12" units-per-pixel="1.71661376953125e-4" order="12"/>
<TileSet href="13" units-per-pixel="8.58306884765625e-5" order="13"/>
<TileSet href="14" units-per-pixel="4.291534423828125e-5" order="14"/>
<TileSet href="15" units-per-pixel="2.145767211914063e-5" order="15"/>
<TileSet href="16" units-per-pixel="1.072883605957031e-5" order="16"/>
<TileSet href="17" units-per-pixel="5.364418029785156e-6" order="17"/>
</TileSets>
</TileMap>
以为有了它就可以水到渠成了,有的地图下载器下载的tms切片文件夹,切片层级会有差距,需要将文件夹命名数字减去1即可
最后效果:
请关注我的微信公众号:一位更懂IT的GISER,一位更懂GIS的IT
PS:后续小编的主要精力放到GIS理论开发知识的大众化的道路了,通过浅显易懂的语言,结合多年行业应用开发,通过微信订阅号传播(每周更新三篇文章及相关GIS编码知识),为GIS的发展尽微博之力。终极目标是让GIS不再专业,让GIS更加大众,使得GIS深入各行业应用,让每位GISER都有一股自豪感!以下是我的微信订阅号二维码,感兴趣的可以交流沟通!