码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2020-01-10 18:49:15      阅读:275      评论:0      收藏:0      [点我收藏+]

标签:lin   options   dal   get   eva   oat   etl   pointlist   高德地图   

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

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

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);
                    }
                }
            }

 

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

标签:lin   options   dal   get   eva   oat   etl   pointlist   高德地图   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!