百度基本地图使用1
关于百度地图申请开发者key 可以参考前面的博客
关于搭建工程的可以参考前面的博客
这一篇博客介绍基本地图使用里面的地图类型、显示实时交通图、在地图显示一个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() 从地图上面移除。
下面附上整个程序的源代码
点击打开链接