高德Android SDK 2d地图zoomlevel Bug一种解决方案

在Android 2D地图SDK V2.2.0中,存在一个bug
,当getCameraPositon().zoom得到的值都是3.0,如果在应用中不得不用这一版本的2D地图,又必须取得这个值时(如果非必须不推荐哈),这里有一个不是很传统的方式去获取,通过在地图上添加一个TileOverlay,这个Overlay呢,不加载任何新的图层或者数据,仅仅是为了取得最新的level级别:

代码如下:

?





1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

mAmap = mMapView.getMap();

           // tileoverlay,只用于取level不加任何数据

           TileProvider tileprovider = new
UrlTileProvider(256, 256) {

 

              @Override

              public
URL getTileUrl(int
x, int y, int level) {

                  // 拿到当前的级别

                  if
(mLevel != level) {

                     mLevel = level;

                     // 这里是子线程,不能直接操作ui,

                     // ps:mLevel的获取不要通过OncameraChangeListener进行处理

                     // 因为线程的先后关系,在快速缩放时,取到的mLevel有可能不是最新的

                     handler.sendEmptyMessage(0);

                  }

                  // 这里不加载新的图层所以为null

                  return
null;

              }

           };

 

           TileOverlayOptions tileOverlayOptions = new
TileOverlayOptions();

           tileOverlayOptions.tileProvider(tileprovider);

           // 将tileovelay加到地图

       mAmap.addTileOverlay(tileOverlayOptions);

  

效果如下:

具体代码(替换key)和apk见附件

时间: 2024-11-05 16:26:11

高德Android SDK 2d地图zoomlevel Bug一种解决方案的相关文章

百度地图 Android SDK - 个性化地图

什么是百度个性化地图Android SDK? 百度个性化地图Android SDK是一套基于Android 2.2及以上版本设备的应用程序接口,您可以通过该套接口实现基本的地图功能,并且可以定制地图样式,实现个性化地图. 该接口提供以下功能: 1.基本地图:提供地图(2D.3D)的展示和缩放.平移.旋转.改变视角等地图操作: 2.个性化地图:可以更改地图样式,让您的地图与众不同,实现个性化定制: 3.覆盖物:提供常见地图覆盖物(自定义标注.几何图形等),满足开发者的各种需求: 4.坐标映射:提供

android sdk无法更新或者更新缓慢的解决方案

win7安装android sdk老出 Fetching https://dl-ssl.google.com/android/repository/addon .这是android sdk不能连接到谷歌更新网络.解决方法如下: 打开C:\Windows\System32\drivers\etc 目录,找到Hosts文件,用记事本打开,在后面添加#google_android更新203.208.46.146 dl.google.com203.208.46.146 dl-ssl.google.com

Android SDK Manager下载不了的问题解决方案

这个可能是网络问题,国内服务器经常连接不上Google的服务器 尝试下面的解决办法: 第一步: Tools-->Options 在下图的红方框标记部分打上勾 第二步: 在C:\Windows\System32\drivers\etc目录下找到hosts文件,如下图: 用记事本打开hosts文件,在最后一行添加如下代码: #android更新 203.208.46.146 dl.google.com 203.208.46.146 dl-ssl.google.com 如下图所示: 保存修改就可以啦!

Unity3d Android SDK接入解析(二)Unity3d Android SDK的设计与两种接入方式

一.前言 上篇说清楚了Unity和Android调用的方式,但很多实际接入的部分没有讲的很详细,因为重头在这篇,会详细讲述具体接入Android SDK的方式,和怎么去做一个方便Unity接入的SDK. 传送门: 前篇:Unity3d 与 Android之间的互相调用 http://blog.csdn.net/yang8456211/article/details/51331358 后篇:Unity3d Android SDK接入解析(三)接入Android Library的理解 http://

【高德地图Android SDK】视频教学

前两天参加了高德在北航举办的公开课,感觉非常不错.完成老师布置的作业之后,还顺利地拿到了高德开发者认证证书!! 现在来跟大家分享一下,如何快速学习[高德地图Android SDK]的开发.一天包会!连环境如何配置,都在视频里有喔. 基础知识 Android 导航 SDK 是一款针对在线导航的产品,产品功能涵盖路径规划.模拟导航.GPS 定位.自定义导航界面.获取导航播报信息等.此外,该产品的导航路径计算与实时交通信息相结合,力求为用户提供更加合理.准确.人性化的导航服务.Android 导航 S

高德地图Android SDK通过View初始化Marker的一些用途

大家都知道在高德地图Android SDK中,InfoWindow是全局唯一的,并且这个infowindow与AMap和Marker有关,使用起来不是很灵活,并且没法实现如下类似的需求:现在我们有一些自定义marker,或者查询得到的poi数据,我们想在地图上直观的看到这些点具体情况(效果如下图所示),而不是需要点击每个marker,弹出一个infowindow来才能查看到它的消息.这种需求我们就需要考虑别的方式来实现了. 其实实现这个功能也很简单,我们需要变通一下,从Marker去着手而非从I

百度地图 Android SDK - 检索功能使用的简单示例

百度地图 SDK 不仅为广大开发者提供了炫酷的地图展示效果.丰富的覆盖物图层,更为广大开发者提供了多种 LBS 检索的能力.通过这些接口,开发者可以轻松的访问百度的 LBS 数据,丰富自己的移动端地图应用. 目前百度地图 SDK 为开发者提供的检索服务有: POI 检索:可以检索百度 POI 数据信息: 线路规划:利用百度的引擎帮助开发者规划线路: 在线建议检索.短链接分享.地理编码等等.... 本文将以一个很简单的 POI 城市内检索为例,像广大开发者介绍接口的使用. 第一步,选择并下载 SD

百度地图 Android SDK - 新的版本号(v3.2.0)正式上线

百度地图 Android SDK v3.2.0 在版本号 2014 年 11 月 07 日本正式推出工作完成! watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2FsbG1lc2Vu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" > 在这个版本号中.我们主要为广大开发人员开放了百度城市热力图层,帮助开发人员构建形式更加丰富的地图应用! 那么这里可能

百度地图 Android SDK - Hello Baidu Map

如下内容主要向广大开发者介绍如何利用百度地图Android SDK来构建一个最基本的地图应用! 第一步,创建Android工程,将百度地图Android SDK的开发包导入到工程相应位置: 在工程里新建libs文件夹,将开发包里的baidumapapi_vX_X_X.jar拷贝到libs根目录下,将libBaiduMapSDK_vX_X_X.so拷贝到libs\armeabi目录下(官网demo里已有这两个文件,如果要集成到自己的工程里,就需要自己添加),拷贝完成后的工程目录如下图所示: 注:l