高德地图自定义定位按钮及点击事件

2018-11-23  本文已影响0人  HaoKe

最近使用了一下高德地图,使用期间将出现的问题记录一下。文中出现不对的地方,悉听各路大神指正。2018年11月23日15:59:46


1.首先我们初始化map控制对象aMap 。

if (aMap ==null) {

aMap =mMapView.getMap();

}

2.设置setMyLocationButtonEnabled为false(true:显示地图默认右上方圆形定位图标  false:不显示)

aMap.getUiSettings().setMyLocationButtonEnabled(false);

3.实现位置变化监听器setOnMyLocationChangeListener

aMap.setOnMyLocationChangeListener(new AMap.OnMyLocationChangeListener() { 

@Override

    public void onMyLocationChange(Location location) {

                double latitude = location.getLatitude();

                double longitude = location.getLongitude();

                latLng =new LatLng(latitude,longitude);

                if(followMove){

                            aMap.animateCamera(CameraUpdateFactory.newLatLng(latLng));

                }

        }

});

4.实现setOnMapTouchListener监听

aMap.setOnMapTouchListener(new AMap.OnMapTouchListener() {

    @Override

    public void onTouch(MotionEvent motionEvent) {

        //用户拖动地图后,不再跟随移动,直到用户点击定位按钮

        followMove =false;

    }

});

5.activity的xml中新增一个imageview,放到你喜欢的地方。用你喜欢的icon,(使用FrameLayout来实现覆盖)

<ImageView

    android:layout_width="40dp"

    android:layout_height="40dp"

    android:src="@mipmap/ic_location"

    android:onClick="doclick"

    android:padding="5dp"

    android:layout_marginLeft="50dp"

    android:layout_marginTop="100dp"/>

6.在imageview点击事件中使用moveCamera更新位置,完成定位

public void doclick(View view) {

        aMap.moveCamera(CameraUpdateFactory.changeLatLng(latLng));

}

7.有不明白的地方可以参考高德地图官方文档 

上一篇下一篇

猜你喜欢

热点阅读