每天记录学习的新知识:利用高德地图绘制历史路线

前提:

App需要展示行程路线,这里用的是高德地图的Api

绘制路线:

首先下载了官方提供的 AMap3DDemo ,运行后找到 case 多彩线绘制,仿照它基本上可以实现路线绘制。

在这里插入图片描述
绿色位置请忽略。

蓝色的线是绘制的轨迹线。

代码如下:

List<LatLng> latLngs = new ArrayList<>();
latLngs.add ... 添加坐标点

PolylineOptions options = new PolylineOptions();//配置

options.width(10);//设置宽度
options.addAll(latLngs);//坐标集合
options.colorValues(colorList);//加入对应的颜色,使用colorValues 即表示使用多颜色,使用color表示使用单色线

aMap.addPolyline(options);//显示轨迹

以上,轨迹就绘制完成了。

控制显示位置:

绘制完路线需要,移动显示位置至中心位置。

代码:

    public static void zoomToSpan2(AMap aMap, List<LatLng> ts) {
        LogUtils.i(TAG, "zoomToSpan");
        try {
            if (ts != null && ts.size() > 0) {
                if (aMap == null) {
                    LogUtils.i(TAG, "aMap == null");
                    return;
                }
                if (ts.size() == 1) {
                    LogUtils.i(TAG, "naviLatLngList.size()==1");
                    aMap.moveCamera(CameraUpdateFactory.newLatLngZoom(ts.get(0), 18f));
                } else {

                    LatLngBounds.Builder b = LatLngBounds.builder();
                    for (int i = 0; i < ts.size(); i++) {
                        b.include(ts.get(i));
                    }

                    LatLngBounds bounds = b.build();
                    LogUtils.i(TAG, "bounds:" + bounds.toString());
                    aMap.moveCamera(CameraUpdateFactory.newLatLngBounds(bounds, 17));
                }
            }
        } catch (Throwable e) {
            e.printStackTrace();
        }
    }

解决滑动冲突:

代码:

	mapView.setOnTouchListener(this);

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if (event.getAction() == MotionEvent.ACTION_UP) {
            nestedScroll.requestDisallowInterceptTouchEvent(false);
        } else {
            nestedScroll.requestDisallowInterceptTouchEvent(true);
        }
        return false;
    }

禁用地图手势:

高德地图控件交互设置:包括缩放按钮、定位按钮、比例按钮、logo

简介:

缩放按钮
setZoomControlsEnabled(boolean b);
指南针
setCompassEnabled(boolean b);
定位按钮
aMap.setLocationSource(this);//通过aMap对象设置定位数据源的监听
mUiSettings.setMyLocationButtonEnabled(true); //显示默认的定位按钮
aMap.setMyLocationEnabled(true);// 可触发定位并显示当前位置
比例尺控件
setScaleControlsEnabled(boolean b);//控制比例尺控件是否显示
地图Logo
setLogoPosition(int position);//设置logo位置

高德地图手势交互设置:如缩放、旋转、滑动、倾斜。

简介:

缩放手势
UiSettings.setZoomGesturesEnabled(boolean)
滑动手势
UiSettings.setScrollGesturesEnabled(boolean)
旋转手势
UiSettings.setRotateGesturesEnabled(boolean)
倾斜手势
UiSettings.setTiltGesturesEnabled(boolean)
所有手势
UiSettings.setAllGesturesEnabled (boolean

代码:

        aMap.getUiSettings().setZoomControlsEnabled(false);
        aMap.getUiSettings().setAllGesturesEnabled (false);

结束:

事实证明,下载demo非常有用~

查看坐标点的位置信息

https://lbs.amap.com/tools/picker

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

周周都刷火焰猫头鹰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值