废话不多说,直接商代吗
高德地图的加载就不多说了,这个直接去高德官网看就行了
高德官网:概述-Android 地图SDK | 高德地图API
下面我们就说如何添加天地图瓦片图层
天地图官网:天地图API
1.先去天地图注册成为开发者
2.创建应用,需要添加你的Android发布的密钥sha1,这里生成的key需要在添加图层时用
3.高德地图添加图层代码如下
final String url = "http://t4.tianditu.gov.cn/img_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION" +
"=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX=%s&" +
"TILEROW=%s&TILECOL=%s&tk=天地图申请key";
final String url2 = "http://t4.tianditu.gov.cn/cia_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION" +
"=1.0.0&LAYER=cia&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX=%s&" +
"TILEROW=%s&TILECOL=%s&tk=天地图申请key";
加载图层的方法onlineTdtLoad(),直接在你地图初始化后执行就可以 mAMap是你实例化的高德地图
aMap.setMaxZoomLevel(Float.parseFloat("18.5")); //设置最大缩放等级
这里注意一下,在实例化高德地图时,需要设置一下最大的缩放等级,要不然放到最大,天地图也会出现没有卫星图的问题
private void onlineTdtLoad() {
UrlTileProvider mUrlTileProvider = new UrlTileProvider(256, 256) {
@Override
public URL getTileUrl(int x, int y, int zoom) {
try {
String real_url = String.format(url, zoom, y, x);
LatLng mLatLng = mAMap.getProjection().fromScreenLocation(new Point(x,y));
Log.e("getTileUrl",x+","+y+""+" "+mLatLng+" "+real_url);
// aMap.addMarker(new MarkerOptions().position(mLatLng).icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN)));
// aMap.addMarker(new MarkerOptions().icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE))).setPositionByPixels(x,y);
return new URL(real_url);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
};
TileOverlayOptions tileOverlayOptions =
new TileOverlayOptions().tileProvider(mUrlTileProvider);
UrlTileProvider mUrlTileProvider2 = new UrlTileProvider(256, 256) {
@Override
public URL getTileUrl(int x, int y, int zoom) {
try {
String real_url = String.format(url2, zoom, y, x);
LatLng mLatLng = mAMap.getProjection().fromScreenLocation(new Point(x,y));
Log.e("getTileUrl2",x+","+y+""+" "+mLatLng+" "+real_url);
return new URL(real_url);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
};
TileOverlayOptions tileOverlayOptions2 =
new TileOverlayOptions().tileProvider(mUrlTileProvider2);
mAMap.addTileOverlay(tileOverlayOptions).setZIndex(1);
mAMap.addTileOverlay(tileOverlayOptions2).setZIndex(2);
}
者部分也是参考了大佬的文章Android使用高德地图添加天地图作为底图_高德加载天地图卫星-CSDN博客