半栈工程师程序员

【百度地图】Android实现地图展示、定位、选点、地点查询和地

2018-01-19  本文已影响0人  28292f4144cb

声明:原创作品,转载请注明出处:https://www.jianshu.com/p/bb14753d441f

1、集成百度地图sdk

请查看百度地图开放平台,这里有很详细的教程。

2、地图展示功能

将地图控件放入到当前页面的布局中即可,如下:

MapView

在页面代码中,通过id获取到MapView的对象,再MapView的getMap()方法,可以获取到BaiduMap的对象,可以通过这个对象设置地图的缩放级别。

示例代码如下:

displayMap

注意:MapView应该在activity的onDestroy()方法中调用其destroy()方法。

3、定位功能

定位功能主要涉及到2个类和1个回调接口,即:LocationClient、LocationClientOption和BDLocationListener。

简单介绍一下:

LocationClient类:可以通过这个类的对象,调用start()方法,来定位到当前位置,调用stop()方法,来停止定位。

LocationClientOption类:用来设置一系列的参数,对LocationClient进行配置(用LocationClient调用setLocOption()方法)。

BDLocationListener接口:可以将这个接口设置给LocationClient类(用LocationClient调用registerLocationListener()方法),就可以在这个监听中,获取到定位的信息。

示例代码如下:

定位模块

4、选点功能

这个功能涉及到BaiduMap类、BitmapDescriptor类和OverlayOptions类。

首先,在MapView的clickable属性为true的情况下,通过BaiduMap类,对其设置点击监听。

然后在监听中,将覆盖物设置到所选的点上。

示例代码如下:

setOverlay

注意:覆盖物的bitmap不要在每次使用时都重新获取,只需在onCreate中初始化一次即可,否则会导致性能问题。

5、地点查询

这个功能主要涉及到GeoCoder类和OnGetGeoCoderResultListener接口。

GeoCoder类通过newInstance()方法来获取对象。

它的对象可以通过调用setOnGetGeoCodeResultListener方法来设置监听。

并且可以通过geocode方法来进行地点查询(即获取其坐标),和通过reverseGeoCode方法来进行反向查询(即通过坐标来获取地点)。

示例代码如下:

geoCoder

注意:GeoCoder应该在activity的onDestroy()方法中调用其destroy()方法。

6、地点模糊查询

这个功能主要涉及到SuggestionSearch类和OnGetSuggestionResultListener接口。

SuggestionSearch类通过newInstance()方法来获取对象。

它的对象可以通过调用setOnGetSuggestionResultListener方法来设置监听。

并且可以通过requestSuggestion方法来进行地点查询,这里获取到的是SuggestionResult对象,可以通过其getAllSuggestions()

方法来获取到查询的列表等信息。

示例代码如下:

suggestionSearch

注意:SuggestionSearch应该在activity的onDestroy()方法中调用其destroy()方法。

上一篇下一篇

猜你喜欢

热点阅读