Android高德之旅(7)绘制点标记

废话

本系列第7篇,终于讲到了绘制。说到吃饭...呸,说到绘制,这在地图应用中是非常重要的一部分,很多时候我们集成地图SDK时,都不可能仅仅使用默认地图元素,在默认元素不能满足需求时,绘制就派上了用场。这篇文章来记录下最简单的绘制点标记。

Marker和InfoWindow

点标记功能包含两大部分,一部分是点(俗称 Marker)、另一部分是浮于点上方的信息窗体(俗称 InfoWindow)。SDK 对 Marker 和 InfoWindow 封装了大量的触发事件,例如点击事件、长按事件、拖拽事件。

(1)添加一个marker

LatLng latLng = new LatLng(39.906901,116.397972);
MarkerOptions markerOptions = new MarkerOptions().position(latLng)
        .title("北京")
        .snippet("简单描述")
        .icon(BitmapDescriptorFactory.fromResource(R.drawable.custom_location_icon))
        .draggable(true)
        .visible(false)
        .anchor(0.5f, 1f)
        .alpha(0.8f);
marker = aMap.addMarker(markerOptions);

展示一个marker最基本的是要有一个经纬度,否则marker就不知道显示在哪里了。
其次还有很多有属性可以设置。

  • position 经纬度位置
  • title 标题
  • snippet 片段,可以理解成一个非常简短的描述
  • icon 自定义图标,如果不设置就展示默认的定位icon
  • draggable 是否可以拖拽
  • visible 是否可见
  • anchor 图标的中心点
  • alpha 透明度
Android高德之旅(7)绘制点标记_第1张图片

(2)开始动画

Animation animation = new RotateAnimation(0, 360, 0, 0, 0);
animation.setDuration(1000);
animation.setInterpolator(new LinearInterpolator());
marker.setAnimation(animation);
marker.startAnimation();
Android高德之旅(7)绘制点标记_第2张图片

(3)Marker事件

// 点击事件
aMap.setOnMarkerClickListener(new AMap.OnMarkerClickListener() {
    @Override
    public boolean onMarkerClick(Marker marker) {
        Log.e("TAG", "onMarkerClick:" + marker.getTitle());
        return false;
    }
});

// 拖拽事件
aMap.setOnMarkerDragListener(new AMap.OnMarkerDragListener() {
    @Override
    public void onMarkerDragStart(Marker marker) {
        Log.e("TAG", "onMarkerDragStart:" + marker.getTitle());
    }

    @Override
    public void onMarkerDrag(Marker marker) {
        Log.e("TAG", "onMarkerDrag:" + marker.getTitle());
    }

    @Override
    public void onMarkerDragEnd(Marker marker) {
        Log.e("TAG", "onMarkerDragEnd:" + marker.getTitle());
    }
});

(4)显示InfoWindow

marker.showInfoWindow();
// marker.hideInfoWindow();
Android高德之旅(7)绘制点标记_第3张图片

总结

绘制是个大头,先开个简单的头,后面还有很多值得研究的点。本期节目就到这里,感谢大家的收看,我们下期再见~

你可能感兴趣的:(Android高德之旅(7)绘制点标记)