高德地图SDK使用经验

时间:2021-03-29 20:27:15

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

2D地图:v2.3.1

定位:v1.3.0

导航:v1.1.1

发现的问题如下,其中一些疑是地图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和title,否则不能显示InfoWindow。此问题纠结了我许久,最后在与demo的代码进行几乎逐行对比之后,加上了这行代码后才显示出来infowindow。

影响:自己小心。

4、导航的起始坐标点。

导航建议传入一个起始坐标点。反正如果不传,我在室内总是定位不到也无法计算路线,更不用说导航了。