地图显示出来了之后,我们要在上边绘制mark点和写一个自定义气泡
这是单位的需求,周末回家就自己试了下,功能什么的都一样,样式和切图是自己随便闹的
官方文档的内容
http://lbs.amap.com/api/android-sdk/guide/draw-on-map/draw-marker
绘制默认 Marker
绘制 Marker 的代码如下:
LatLng latLng = new LatLng(39.906901,116.397972);
final Marker marker = aMap.addMarker(new MarkerOptions().position(latLng).title("北京").snippet("DefaultMarker"));
绘制自定义 Marker
可根据实际的业务需求,在地图指定的位置上添加自定义的 Marker。MarkerOptions 是设置 Marker 参数变量的类,自定义 Marker 时会经常用到。
下面以自定义 Marker 图标为例进行代码说明:
MarkerOptions markerOption = new MarkerOptions();
markerOption.position(Constants.XIAN);
markerOption.title("西安市").snippet("西安市:34.341568, 108.940174");
markerOption.draggable(true);//设置Marker可拖动
markerOption.icon(BitmapDescriptorFactory.fromBitmap(BitmapFactory
.decodeResource(getResources(),R.drawable.location_marker)));
// 将Marker设置为贴地显示,可以双指下拉地图查看效果
markerOption.setFlat(true);//设置marker平贴地图效果
绘制动画效果 Marker
自地图 SDK V4.0.0 版本起,SDK 提供了给 Marker 设置动画的方法,具体实现方法如下:
Animation animation = new RotateAnimation(marker.getRotateAngle(),marker.getRotateAngle()+180,0,0,0);
long duration = 1000L;
animation.setDuration(duration);
animation.setInterpolator(new LinearInterpolator());
marker.setAnimation(animation);
marker.startAnimation();
可触发的 Marker 事件
Marker 点击事件
点击 Marker 时会回调AMap.OnMarkerClickListener,监听器的实现示例如下:
// 定义 Marker 点击事件监听
AMap.OnMarkerClickListener markerClickListener = new AMap.OnMarkerClickListener() {
// marker 对象被点击时回调的接口
// 返回 true 则表示接口已响应事件,否则返回false
@Override
public boolean onMarkerClick(Marker marker) {
return false;
}
};
// 绑定 Marker 被点击事件
mAMap.setOnMarkerClickListener(markerClickListener);