Bootstrap

Cesium加载TMS切片

今天刚好有时间看了这个问题,关于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都有一股自豪感!以下是我的微信订阅号二维码,感兴趣的可以交流沟通!

;