更新时间:2020-06-23
文字覆盖物
文字(Text)在地图上也是一种覆盖物,由Text类定义。文字覆盖物的绘制通过TextOptions类来设置。示例代码如下:
//文字覆盖物位置坐标
LatLng llText = new LatLng(39.86923, 116.397428);
//构建TextOptions对象
OverlayOptions mTextOptions = new TextOptions()
.text("百度地图SDK") //文字内容
.bgColor(0xAAFFFF00) //背景色
.fontSize(24) //字号
.fontColor(0xFFFF00FF) //文字颜色
.rotate(-30) //旋转角度
.position(llText);
//在地图上显示文字覆盖物
Overlay mText = mBaiduMap.addOverlay(mTextOptions);
运行结果如下:
添加信息窗(弹窗覆盖物InfoWindow)
下面简述两种构造InfoWindow的方法。
使用View构造InfoWindow
//用来构造InfoWindow的Button
Button button = new Button(getApplicationContext());
button.setBackgroundResource(R.drawable.popup);
button.setText("InfoWindow");
//构造InfoWindow
//point 描述的位置点
//-100 InfoWindow相对于point在y轴的偏移量
mInfoWindow = new InfoWindow(button, point, -100);
//使InfoWindow生效
mBaiduMap.showInfoWindow(mInfoWindow);
效果如图:
使用BitmpDescriptor构造InfoWindow
OnInfoWindowClickListener :InfoWindow被点击时的回调接口,通过重写onInfoWindowClick方法来实现响应点击事件,在使用BitmapDescriptor来构造InfoWindow时需要传入一个OnInfoWindowClickListener对象。
//用来构造InfoWindow
BitmapDescriptor mBitmap = BitmapDescriptorFactory.fromResource(R.drawable.popup);
//响应点击的OnInfoWindowClickListener
InfoWindow.OnInfoWindowClickListener listener = new InfoWindow.OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick() {
Toast.makeText(MarkerDemo.this, "Click on InfoWindow", Toast.LENGTH_LONG).show();
}
};
//构造InfoWindow
//point 描述的位置点
//-100 InfoWindow相对于point在y轴的偏移量
mInfoWindow = new InfoWindow(mBitmap, point, -100, listener);
//使InfoWindow生效
mBaiduMap.showInfoWindow(mInfoWindow);
显示效果及点击事件效果展示如图: