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()方法。