高德地图加载腾讯地形图

本文详细介绍了如何在高德地图上加载腾讯的地形晕染图瓦片。通过解析WMTS切片,利用TileOverlay在地图加载完成后叠加腾讯地形图,提供了一种补全高德地图缺失地形信息的方法。在地图加载完成后,通过设置TileOverlay并自定义UrlTileProvider来获取和加载腾讯的地形瓦片。关闭地形晕染图时,只需调用TileOverlay的setVisible方法。
摘要由CSDN通过智能技术生成

本文是对高德地图加载谷歌地图瓦片的补充

地形晕染图

地形晕染图

地形晕染图来源于腾讯地图。它和高德地图的切片方式同为谷歌切片标准、坐标系同为GCJ-02坐标系,最大的区别在于图源。如果能够获取到地图瓦片,将会补全高德地图中不存在地形晕染图的缺憾。本文目的在于对WMTS切片进行解析,实现在高德地图中加载腾讯地形晕染图。

获取地形图瓦片

F12查看,可得到地形图瓦片格式为 https://p1.map.gtimg.com/demTiles/{z}/{sx}/{sy}/{x}_{y}.jpg
其中sx sy 分别是对x y 进行位运算后得到的值,公式如下:
sx = x>>4
sy = ((1<<level)-y)>>4
因此完整格式为 https://p1.map.gtimg.com/demTiles/{z}/{x>>4}/{((1<<level)-y)>>4}/{x}_{y}.jpg

在高德地图Mobile SDK中的使用方式

设置地图加载完成事件的监听,重写onMapLoaded的方法,使用 TileOverlay ,在地图上叠加地形晕染图。

 String TENCENT_TERRAIN = "https://p1.map.gtimg.com/demTiles/%d/%d/%d/%d_%d.jpg";
 aMap.setOnMapLoadedListener(new AMap.OnMapLoadedListener() {
            @Override
            public void onMapLoaded() {
                TileProvider tileProvider = new UrlTileProvider(256, 256) {
                    @Override
                    public synchronized URL getTileUrl(int x, int y, int zoom) {
                        String s = String.format(Locale.US, TENCENT_TERRAIN , zoom,x>>4,((1<<level)-y)>>4,x,y);
                        URL url = null;
                        try {
                            url = new URL(s);
                        } catch (MalformedURLException e) {
                            throw new AssertionError(e);
                        }
                        return url;
                    }
                };
                TileOverlay tileOverlay = aMap.addTileOverlay(new TileOverlayOptions().tileProvider(tileProvider));
            } 

其他

核心方法为 AMap.addTileOverlay(TileProvider provider),在合适的时机使用即可,不是非得在onLoad时使用。该方法相当于在地图上加了一层地图遮罩,不会对原SDK的使用造成任何影响。要想关闭地形晕染图,调用SDK中隐藏图层的方法TileOverlay.setVisible(boolean isVisible)即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值