首页 > 代码库 > 高德地图SDK使用教训

高德地图SDK使用教训

下文说的是高德地图 Android SDK版本,详细版本如下:

2D地图:v2.3.1

定位:v1.3.0


发现的问题如下,其中一些是地图BUG,一些是需要你自己小心的地方:

1、定位。

public void requestLocationData(java.lang.String provider,
                       long minTime,
                       float minDistance,
                       AMapLocationListener listener)
对于第二个参数,会影响所有回调接口的回调时间。官方的邮件回复是说,会以传入的第二个参数的最大的那个数,作为回调时间。

也就是,如果你在某个地方调用此接口,设置一分钟回调一次,requestLocationData(xxx, 60 * 1000, xx, xxxlistener),而在地图中,对定位按钮添加事件:requestLocationData(xxx, -1, xx, xxxxxlistener),那么这个定位事件会在1分钟之后才回调。你有定时更新定位的需求的话,自己写计时器吧。

影响:较大。


2、比例尺。

如果你不调用此接口:mUiSettings.setScaleControlsEnabled(true);那么会有以下结果:

两指缩放地图,会显示出比例尺,并且比例尺会随着地图变化。

双击,或者点击缩放按钮进行地图缩放的话,不会使比例尺出现。而如果比例尺出现的话,也不会因此随着地图而变化。

基于以上结果,导致比例尺与实际不符。

对此问题,官方邮件回复中确定为已知问题。

解决方法,很简单,手动设置为true或false就行。

影响:极小。


3、显示infowindow。

在添加Marker的时候,一定要对MarkerOptions设置anchor,否则不能显示InfoWindow。此问题纠结了我许久,最后在与demo的代码进行几乎逐行对比之后,加上了这行代码后才出来infowindow。

高德地图SDK使用教训