前文讲到worldwind Java对Tile服务的加载点击查看,实际上,worldwind java对TMS服务的支持方式与对tile服务的支持类似。步骤如下:
- 重写makeLevels,构建图层所要的信息LevelSet
- 构建TileUrlBuilder,以建立不同tile的url服务地址
makeLevels的例子不再给出,参见前文即可:
makeLevels最核心的仍然是TileUrlBuilder,这里以腾讯的数据源为例,说明TMS服务的加载。以TileUrlBuilderCustom为基础,构建TileUrlBuilderCustomTianDiTu,代码如下:
public class TileUrlBuilderCustomTMS extends TileUrlBuilderCustom {
public TileUrlBuilderCustomTMS(String urlFormat,String serverPre) {
super(urlFormat,serverPre);
}
protected double computeTileUrlTMS(double lat)
{
return -1*lat;
}
protected String computeTileUrl(String strTemp, int x, int y, int zoom) {
strTemp = strTemp.replace("{x1}",String.valueOf((int)(Math.floor(x/16.0))));
strTemp = strTemp.replace("{y1}",String.valueOf((int)(Math.floor(y/16.0))));
return computeTileUrlRandom(strTemp,x,y,zoom);
}
}
腾讯数据的载入
TileUrlBuilder tb = new TileUrlBuilderVeTMS("http://rt{s}.map.gtimg.com/realtimerender?z={z}&x={x}&y={y}&type=vector&style=0&v=1.1.2","0123");
将这里的TileUrlBuilder 传给上面的makeLevels,即可实现数据的载入。
下图为加载腾讯地图数据的示例图。