android高德地图绘制线 渐变处理

这个是为了实现淘宝物流轨迹的那种样式,轨迹路线是渐变色。

先说下物流轨迹实现流程。

1.高德地图3d、导航、搜索三个sdk的支持

2.通过导航获取一条路径,这个路径包含的点相当多,可能有上万个。

3.利用路径中的点划线,划线的点和导航提供的点是用的格式不一样,需要简单转换一下。

4.使用android自带的api “ArgbEvaluator”来计算每个点的颜色值。

5.把所有的颜色值放进一个数组,然后使用.colorValues(colorList).useGradient(true)这两个设置,就可以把线绘制出来了。

            @Override
            public void onCalculateRouteSuccess(int[] ints) {
                if(ints!=null&&ints.length>0){
                    AMapNaviPath naviPath = mAMapNavi.getNaviPath();//导航返回的路径

                    if(naviPath.getCoordList()!=null){
                        ArgbEvaluator argbEvaluator = new ArgbEvaluator();//渐变色计算类
                        int colorStart = Color.parseColor("#FFA17A");
                        int colorEnd = Color.parseColor("#FF5934");
                        ArrayList<LatLng> pathPointList = new ArrayList<>();
                        List<Integer> colorList = new ArrayList<>();
                        int size = naviPath.getCoordList().size();//路径上所有的点
                        for (int i = 0; i <size; i++) {
                            NaviLatLng naviLatLng = naviPath.getCoordList().get(i);
                            LatLng latLng = new LatLng(naviLatLng.getLatitude(),naviLatLng.getLongitude());
                            int currentColor = (int) (argbEvaluator.evaluate((float) i/(float)size, colorStart, colorEnd));//计算每个点需要的颜色值
                            colorList.add(currentColor);
                            pathPointList.add(latLng);
                        }

                        PolylineOptions polylineOptions = new PolylineOptions()
                                .width(DensityUtil.dip2px(4))
//                                .color(Color.parseColor("#FF5934"))
                                .colorValues(colorList)
                                .useGradient(true)
                                .addAll(pathPointList);
                        mMapControl.addPolyline(polylineOptions);
                    }
                }
            }

原文地址:https://www.cnblogs.com/wangyuehome/p/12177524.html

时间: 2024-10-01 07:05:36

android高德地图绘制线 渐变处理的相关文章

Android高德地图自定义Markers的例子

下文为各位重点介绍关于Android高德地图自定义Markers的例子,希望这篇文章能够让各位理解到Android高德地图自定义Markers的方法. 之前的博客里说了地图的嵌入和定位,今天就说说在地图上显示一些我们想要的.在地图中有自带的Markers(标记),但是它只显示一个椭圆的图标,一般是不符合我们的需求的,这样就要我们自己来自定义.首先标记有下面一些属性; 1.position(Required) 在地图上标记位置的经纬度值.参数不能为空. 2.title 当用户点击标记,在信息窗口上

Android 高德地图 Native method not found: com.autonavi.amap.mapcore.MapCore.nativeNewInstance:(Ljava/lan

Android 高德地图  java.lang.UnsatisfiedlinkError   Native method not found: com.autonavi.amap.mapcore.MapCore.nativeNewInstance:(Ljava/lang/String;) 遇到一个bug 别的机型上没有碰到 只在lenovo的手机上  使用高德地图出现了bug   看了下log日志出现了 Native method not found: com.autonavi.amap.map

android 高德地图出现【定位失败key鉴权失败】

如题:android 高德地图出现[定位失败key鉴权失败] 原因:使用的是debug模式下的SHA1,发布的版本正确获取SHA1的方式见: 方法二使用 keytool(jdk自带工具),按照如下步骤进行操作:1.运行进入控制台. 2.在弹出的控制台窗口中输入 cd .android 定位到 .android 文件夹. 3.继续在控制台输入命令.开发模式使用 debug.keystore,命令为:keytool -list -v -keystore debug.keystore发布模式使用 ap

Android高德地图开发——准备阶段

1.地图SDK下载 高德地图Android SDK主要包括地图SDK.搜索SDK和定位SDK.其中地图SDK有包括2D地图SDK和3D地图SDK. 3D SDK, 提供矢量地图显示.离线地图等功能. 2D SDK, 提供栅格地图显示.覆盖物绘制等功能. 搜索 SDK,提供兴趣点搜索.路径规划.公交查询.地理编码等功能. 定位 SDK,提供定位.逆地理编码(地址的文字描述).以及地理围栏功能. http://lbs.amap.com/api/android-sdk/down/(地图sdk和搜索sd

使用高德地图绘制多边形区域

最近遇到一个需求,在网页上面编辑多边形的区域,并且需要能够判断一个点是否在这个多边形区域里面. 看了一下高德地图的jsapi,简单的做了一个demo. 1.你需要一个高德地图的账号,注册地址点击这里 2.登陆进去创建一个应用,这个时候就会给你一个对应的Key 3.查看高德地图的的demo,进入示例中心 4.学习一下左侧分类里面的 点标记 的示例,点标记里有涉及到高德地图事件,以及基础的类. 5.看完上面的,接下来我们接着学习折线,多边形,圆,这里我们就可以接触到AMap.Polygon这个类,以

Android高德地图使用

在Swift基础 - - 高德地图实践(一)中使用swift来使用高德地图,这里使用Android实践高德地图包含定位,移动地图动画,获取网络数据,marker标记以及点击,Infowindow自定义界面以及点击,以及点击无marker地图上面隐藏infowindow等功能.直接看代码 package com.carmap.ui; import android.graphics.Color; import android.location.Location; import android.os.

Android高德地图开发详解

这段时间开发的时候用到了高德地图,对高德地图开发有心得体会,现在分享给大家,对我开发过百度地图的我来说,总体来说高德地图Demo,没有百度讲解的详细 个人更偏向于使用百度地图,但是没办发,项目需要使用高德地图,我开发的是定位,更具经纬度添加标记,标记点击事件,以及路线规划废话不多说,上代代码 那么首先导入高德给的jar,包,我开发的是2d地图, 这个包结构图,高德题图api也提供了步骤,就不多说了 下面添加权限,设置key <uses-permission android:name="an

Android 高德地图的定位,周边搜索

刚弄完这两个功能,当然是结合官网例子实现的.效果还行,稍作优化便可整合到app使用.在这里做一下总结,及说明下我的思路. 刚开始上手感觉比较乱学起来也比较累,方法,类太多,直接复制各种错,还不知道为什么这么做.现在我们一起交流下实现的思路: 1:定位:这是所有地图功能实现的基础,所以不管要实现诸如周边搜索啊,导航啊什么的都需要基于定位. 如何定位:官网上例子也很详细,主要是实现几个监听,并实现方法: aMap.setLocationSource(this);// 设置定位监听 //绑定监听 ma

如何在vue项目中使用echarts和高德地图绘制折线和热力图

1.先下载相关的依赖,这里echarts和高德地图放到一起.(高德地图需要先去申请一个key) // The Vue build version to load with the `import` command // (runtime-only or standalone) has been set in webpack.base.conf with an alias. import Vue from 'vue' import App from './App' import router fr