美文网首页半栈工程师程序员
【百度地图】Android实现地图展示、定位、选点、地点查询和地

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

作者: 28292f4144cb | 来源:发表于2018-01-19 17:50 被阅读0次

    声明:原创作品,转载请注明出处: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()方法。

    相关文章

      网友评论

        本文标题:【百度地图】Android实现地图展示、定位、选点、地点查询和地

        本文链接:https://www.haomeiwen.com/subject/jdzooxtx.html