所有的百度地图 SDK 在使用时,必须先调用SDKInitializer.initialize(Context context)方法进行初始化。
MapStaus地图状态。可以设置地图的中心点、缩放级别、仰望角、旋转角。该类是 final 类,要用MapStaus.Builder构造Overlay覆盖物。该类为抽象类。其子类有Arc弧线、Circle圆、Dot圆点、GroundOverlay矩形区域、Marker标记、Polygon多边形、Polyline折线、Text文本
地图常用类
BaiduMap
用于操作 MapView 的类。
BaiduMap 常用方法
animateMapStatus(MapStatusUpdate update)更新地图addOverlay(OverlayOptions options)添加覆盖物clear()清空地图所有的 Overlay 覆盖物以及 InfoWindowsetMyLocationEnabled(boolean enabled)是否允许定位图层setMapStatus(MapStatusUpdate update)改变地图状态setMyLocationData(MyLocationData data)设置定位数据setMyLocationConfigeration(MyLocationConfiguration configeration)设置定位图层配置信息
注意事项
- 在使用定位图层时,要先设置
setMyLocationEnabled(true) - 添加覆盖物,返回的是
Overlay这个超类,形参是OverlayOptions的子类
MapView
- 用于显示地图视图的控件,生命周期最好与 Activity 一致
- 在 com.baidu.mapapi.map 包下,在 xml 调用时要使用包名加控件名
MapView 常用方法
getMap()获得地图控制器,返回一个 BaiduMap 类showZoomControls(boolean show)设置是否显示缩放控件showScaleControl(boolean show)设置是否显示比例尺控件setLogoPosition(LogoPosition position)用于多地图显示removeView(View view)从 MapView 中移除一个子 ViewgetMapLevel()获取当前地图级别对应比例尺大小setCustomMapStylePath(String customMapStylePath)设置自定义地图样式
MapView 的使用
- 若从 XML 中加载,直接用 findViewById 即可,需要注意的是若不进行任何的设置,默认的中心点是北京,并不是定位的当前点。下面的代码只是简单的演示了如何在加载地图时手动设置定位中心点。
1 | LatLng p = new LatLng(31.22548,121.48326); |
- 如果某个 Activit 只有一个 MapView 用于显示地图。可以直接
setContentView(mMapView),mMapView是MapView的实例。在调用时必须先实例化MapView代码演示:
1 | if (intent.hasExtra("x") && intent.hasExtra("y")) { |
- 使用
fragment填充MapView时,需要借助SupportMapFragment类去实现。代码演示:
1 | MapStatus ms = new MapStatus.Builder() |
- 实时定位。百度地图给的 Demo 中是用其 SDK 中的
BDLocationListener和LocationClient类实现的。并没用 Android 自带的定位。代码比较多,就不具体给出了。其实也可以用自带的,使用MyLocationData进行设置.简化代码如下:
1 | LatLng p = new LatLng(31.22548,121.48326); |
Overlay
添加覆盖物
1 | /** |
POI 检索
百度给的教程:
第一步,创建 POI 检索实例
mPoiSearch = PoiSearch.newInstance();
第二步,创建 POI 检索监听者;
1 | OnGetPoiSearchResultListener poiListener = new OnGetPoiSearchResultListener(){ |
第三步,设置 POI 检索监听者;
1 | mPoiSearch.setOnGetPoiSearchResultListener(poiListener); |