我们现在要实现的功能是点击地图上朋友的marker,跳转到显示朋友信息的界面
1.marker点击事件
mBaiduMap.setOnMarkerClickListener(new OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
}
2.获取发送方和经纬度
String[] s = fullMessage.split("/");
LatLng point = new LatLng(Double.valueOf(s[0])+0.002,Double.valueOf(s[1])+0.002);
BitmapDescriptor bitmap = BitmapDescriptorFactory.fromResource(R.drawable.icon_marker);
OverlayOptions option = new MarkerOptions().position(point).icon(bitmap);
Marker mk = (Marker) mBaiduMap.addOverlay(option);
Bundle bd = new Bundle();
bd.putString("address", address);
bd.putString("latitude",s[0]);
bd.putString("longtitude", s[1]);
mk.setExtraInfo(bd);
对于setExtra方法,是Overlay的方法,但是marker继承了这个方法
public void setExtraInfo(Bundle extraInfo)
设置覆盖物额外信息
参数:
extraInfo
- 覆盖物额外信息
3.获取到marker的信息并且用intent传递
intent.putExtra("number",marker.getExtraInfo().get("address").toString());
intent.putExtra("latitude",marker.getExtraInfo().get("latitude").toString());
intent.putExtra("longtitude",marker.getExtraInfo().get("longtitude").toString());
startActivity(intent);
对于getExtraInfo根据键来获取信息
public Bundle getExtraInfo()
获取覆盖物额外信息
-
返回:覆盖物额外信息
Intent intent = getIntent();
String number = intent.getStringExtra("number");
String lantitude = intent.getStringExtra("lantitude");
String longtitude = intent.getStringExtra("longtitude");
TextView tv1 = (TextView)findViewById(R.id.txt_friend_number);
tv1.setText(number);
TextView tv2 = (TextView)findViewById(R.id.txt_friend_long_lang);
tv2.setText(longtitude);
TextView tv3 = (TextView)findViewById(R.id.txt_friend_altitude);
tv3.setText(lantitude);