更新时间: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);
显示效果及点击事件效果展示如图: