高德地图加载腾讯地形图

2024-01-22 12:50

本文主要是介绍高德地图加载腾讯地形图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

地形晕染图

地形晕染图

地形晕染图来源于腾讯地图。它和高德地图的切片方式同为谷歌切片标准、坐标系同为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() {@Overridepublic void onMapLoaded() {TileProvider tileProvider = new UrlTileProvider(256, 256) {@Overridepublic 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)即可。

这篇关于高德地图加载腾讯地形图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/633028

相关文章

spring-boot-starter-thymeleaf加载外部html文件方式

《spring-boot-starter-thymeleaf加载外部html文件方式》本文介绍了在SpringMVC中使用Thymeleaf模板引擎加载外部HTML文件的方法,以及在SpringBoo... 目录1.Thymeleaf介绍2.springboot使用thymeleaf2.1.引入spring

关于Spring @Bean 相同加载顺序不同结果不同的问题记录

《关于Spring@Bean相同加载顺序不同结果不同的问题记录》本文主要探讨了在Spring5.1.3.RELEASE版本下,当有两个全注解类定义相同类型的Bean时,由于加载顺序不同,最终生成的... 目录问题说明测试输出1测试输出2@Bean注解的BeanDefiChina编程nition加入时机总结问题说明

SpringBoot项目启动后自动加载系统配置的多种实现方式

《SpringBoot项目启动后自动加载系统配置的多种实现方式》:本文主要介绍SpringBoot项目启动后自动加载系统配置的多种实现方式,并通过代码示例讲解的非常详细,对大家的学习或工作有一定的... 目录1. 使用 CommandLineRunner实现方式:2. 使用 ApplicationRunne

SpringBoot项目删除Bean或者不加载Bean的问题解决

《SpringBoot项目删除Bean或者不加载Bean的问题解决》文章介绍了在SpringBoot项目中如何使用@ComponentScan注解和自定义过滤器实现不加载某些Bean的方法,本文通过实... 使用@ComponentScan注解中的@ComponentScan.Filter标记不加载。@C

springboot 加载本地jar到maven的实现方法

《springboot加载本地jar到maven的实现方法》如何在SpringBoot项目中加载本地jar到Maven本地仓库,使用Maven的install-file目标来实现,本文结合实例代码给... 在Spring Boothttp://www.chinasem.cn项目中,如果你想要加载一个本地的ja

最好用的WPF加载动画功能

《最好用的WPF加载动画功能》当开发应用程序时,提供良好的用户体验(UX)是至关重要的,加载动画作为一种有效的沟通工具,它不仅能告知用户系统正在工作,还能够通过视觉上的吸引力来增强整体用户体验,本文给... 目录前言需求分析高级用法综合案例总结最后前言当开发应用程序时,提供良好的用户体验(UX)是至关重要

MyBatis延迟加载的处理方案

《MyBatis延迟加载的处理方案》MyBatis支持延迟加载(LazyLoading),允许在需要数据时才从数据库加载,而不是在查询结果第一次返回时就立即加载所有数据,延迟加载的核心思想是,将关联对... 目录MyBATis如何处理延迟加载?延迟加载的原理1. 开启延迟加载2. 延迟加载的配置2.1 使用

Android WebView的加载超时处理方案

《AndroidWebView的加载超时处理方案》在Android开发中,WebView是一个常用的组件,用于在应用中嵌入网页,然而,当网络状况不佳或页面加载过慢时,用户可能会遇到加载超时的问题,本... 目录引言一、WebView加载超时的原因二、加载超时处理方案1. 使用Handler和Timer进行超

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

Flutter 进阶:绘制加载动画

绘制加载动画:由小圆组成的大圆 1. 定义 LoadingScreen 类2. 实现 _LoadingScreenState 类3. 定义 LoadingPainter 类4. 总结 实现加载动画 我们需要定义两个类:LoadingScreen 和 LoadingPainter。LoadingScreen 负责控制动画的状态,而 LoadingPainter 则负责绘制动画。