高德地图SDK使用经验

下文说的是高德地图 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、导航的起始坐标点。

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

上一篇:c#开发Mongo笔记第九篇


下一篇:有N个正实数(注意是实数,大小升序排列) x1 , x2 ... xN,另有一个实数M。 需要选出若干个x,使这几个x的和与 M 最接近。 请描述实现算法,并指出算法复杂度