环境配置地址(AndroidStudio):https://lbsyun.baidu.com/index.php?title=androidsdk/guide/create-project/androidstudio
环境配置地址(Eclipse):https://lbsyun.baidu.com/index.php?title=androidsdk/guide/create-project/eclipse
示例代码:
***.xml:
<com.baidu.mapapi.map.MapView
android:id="@+id/bmapView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true" />
***.java:
mMapView = findViewById(R.id.bmapView);
// 隐藏比例尺、缩放图
//mMapView.showScaleControl(false);// 隐藏缩放图,默认显示
//mMapView.showZoomControls(false);// 隐藏比例尺,默认显示
// 获取地图控制器
baiduMap = mMapView.getMap();
//设置地图模式为空
//baiduMap.setMapType(BaiduMap.MAP_TYPE_NONE);
//设置地图模式为电子地图
//baiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);
//设置地图模式为卫星地图
//baiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);
//开启交通图
//baiduMap.setTrafficEnabled(true);
//开启热力图
//baiduMap.setBaiduHeatMapEnabled(true);
// 设置地图中心点
MapStatusUpdate mapStatusUpdate = MapStatusUpdateFactory.newLatLng(ccPos);
baiduMap.setMapStatus(mapStatusUpdate);
// 设置缩放为15
// mapStatusUpdate = MapStatusUpdateFactory.zoomTo(15);
// baiduMap.setMapStatus(mapStatusUpdate);
圆形覆盖物
CircleOptions options = new CircleOptions();// 创建一个圆形覆盖物
options.center(ccPos);// 圆心
options.radius(1000);// 半径
options.stroke(new Stroke(20,0x55FF0000));// 线条宽度、颜色
options.fillColor(0x5500FF00);// 圆的填充颜色
baiduMap.addOverlay(options);//添加一个覆盖物
样例:
文本覆盖物
TextOptions options = new TextOptions();// 创建一个文本覆盖物
options.position(ccPos);// 位置
options.text("测试百度地图");// 文本内容
options.fontSize(20);// 文字大小
options.fontColor(0x55ff0000);// 文字颜色
options.bgColor(0x5500ff00);// 背景颜色
options.rotate(30);// 旋转
baiduMap.addOverlay(options);//添加一个覆盖物
样例:
标志覆盖物
MarkerOptions options = new MarkerOptions();// 创建一个标志覆盖物
BitmapDescriptor icon = BitmapDescriptorFactory.fromResource(R.mipmap.android);//
获取资源图片
options.position(ccPos);//位置
options.title("标志");// title
options.icon(icon);// 图标
options.draggable(true);// 是否可以拖动
baiduMap.addOverlay(options);//添加一个覆盖物
baiduMap.setOnMarkerClickListener(markerClickListener);// 添加标志覆盖物点击事件
baiduMap.setOnMarkerDragListener(markerDragListener);// 添加标志覆盖物拖到事件
标志位点击事件和拖动事件
/**
* 标志点击事件
* */
BaiduMap.OnMarkerClickListener markerClickListener = new BaiduMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
myToast("标志覆盖物点击事件");
return true;
}
};
/**
* 标志拖动事件
* */
BaiduMap.OnMarkerDragListener markerDragListener = new BaiduMap.OnMarkerDragListener() {
@Override
public void onMarkerDrag(Marker marker) {
myToast("标志覆盖物拖动中");
}
@Override
public void onMarkerDragEnd(Marker marker) {
myToast("标志覆盖物结束拖动");
}
@Override
public void onMarkerDragStart(Marker marker) {
myToast("标志覆盖物开始拖动");
}
};
样例:
标志覆盖物点击弹出气泡视图
***.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorPrimary">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="标识PopView"/>
</LinearLayout>
java代码:
/**
* 标志点击事件
* */
BaiduMap.OnMarkerClickListener markerClickListener = new BaiduMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
LatLng position = marker.getPosition();
// 显示一个气泡视图
if (pop == null){
pop = View.inflate(BaseActivity.this,R.layout.mark_layout,null);
MapViewLayoutParams.Builder builder = new MapViewLayoutParams.Builder();
builder.layoutMode(MapViewLayoutParams.ELayoutMode.mapMode);// 指定坐标类型为经纬度
builder.position(position);// 设置标志的位置
MapViewLayoutParams params = builder.build();
mMapView.addView(pop,params);
}else {
MapViewLayoutParams.Builder builder = new MapViewLayoutParams.Builder();
builder.layoutMode(MapViewLayoutParams.ELayoutMode.mapMode);// 指定坐标类型为经纬度
builder.position(position);// 设置标志的位置
MapViewLayoutParams params = builder.build();
mMapView.addView(pop,params);
}
return true;
}
};
样例: