首页 > 代码库 > 百度地图API使用系列3-基本地图1

百度地图API使用系列3-基本地图1

百度基本地图使用1

关于百度地图申请开发者key 可以参考前面的博客

百度地图API使用系列1-准备工作

 

关于搭建工程的可以参考前面的博客

百度地图API使用系列2-显示地图

 

这一篇博客介绍基本地图使用里面的地图类型、显示实时交通图、在地图显示一个Marker。

 

 

这里要注意的是关于地图的操作不是有显示地图的控件直接去完成,百度为他添加了一个属性BaiduMap可以把这个属性理解为是 地图的管理器

我们可以通过对应 的 get 方法 获取这个属性

 

baiduMap = baiduMapView.getMap();

地图类型

百度地图提供 了俩种类型的地图资源(普通矢量地图和卫星地图)

BaiduMap.MAP_TYPE_NORMAL          普通矢量地图
BaiduMap.MAP_TYPE_SATELLITE       卫星地图
 
baiduMap.setMapType(MAP_TYPE);
 
/**
 * 设置显示的地图类型
 *
 * @param currentMapType 地图类型
 */
private void setDisplayMapType(int currentMapType) {
    switch (currentMapType) {
    case MAP_NORMAL:
        // 显示地图的类型 分为俩类 1.普通矢量地图 2.卫星地图
        baiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);
        break;
    case MAP_SATELLITE:
        baiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);
        break;
    default:
        baiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);
        break;
}

 

显示实时交通路况图

百度地推目前 已经支持多个城市的交通路况图了

 

baiduMap.setTrafficEnabled(boolean);
 
/**
 * 设置显示实施交通图
 * @param isChecked 是否显示 true显示 false不显示
 */
private void setDisplayTraffic(boolean isChecked) {
    if (isChecked) {
        // 显示 实时交通图
        baiduMap.setTrafficEnabled(true);
    } else {
        baiduMap.setTrafficEnabled(false);
    }
}
 

在地图上面显示一个Marker

/**
 * 通过经纬度在地图上面显示标注物
 * @param longitude 经度
 * @param latitude 纬度
 */
private void setLatlng(double longitude, double latitude) {
    // 构建 标注物 的 坐标 通过经纬度
    // 这个地方需要注意一下 实例化 LatLng 类的时候 在传递参数的时候 是 纬经度
    LatLng point = new LatLng(latitude, longitude);
    Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
    // 通过 bitmap 构建 标注物的 显示 图标
    BitmapDescriptor bitmapDescriptor = BitmapDescriptorFactory.fromBitmap(bitmap);
    // 创建一个 覆盖层
    // 设置标注物的 坐标 position
    // 设置标注物的 图标 icon
    // 设置标注物的 标题 title
    // 设置标注物是否可拖拽 draggable true可以拖拽 false不可以拖拽 长按起作用 可以监听拖拽事件
    OverlayOptions options = new MarkerOptions().position(point).icon(bitmapDescriptor).title("豪景大厦").draggable(true);

    baiduMap.setOnMarkerDragListener(this);

    // 将 覆盖层 添加 带地图上面
    // 这个方法 有一个 返回值的 Overlay
    marker = (Marker) baiduMap.addOverlay(options);

    // 显示默认的 覆盖物位置
    displayMarker("默认", marker);
}

 

对于已经添加的标注覆盖物可以通过 remove() 从地图上面移除。
 
下面附上整个程序的源代码点击打开链接

百度地图API使用系列3-基本地图1