IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android 高德地图绘制线、添加图钉、添加线段纹理 -> 正文阅读

[移动开发]Android 高德地图绘制线、添加图钉、添加线段纹理

1,画轨迹线

    /**
     * 画轨迹图
     * */
    private void DrawLines(){

        List<LatLng> mPointList = new ArrayList<>();
        mPointList.add(new LatLng(26.57, 106.71));
        mPointList.add(new LatLng(26.14,105.55));
        mPointList.add(new LatLng(26.58, 104.82));
        mPointList.add(new LatLng(27.68, 104.07));
        mPointList.add(new LatLng(30.67, 104.06));

        for (LatLngpoint : mPointList ){
            LogUtil.i("last add :"+point.getLatitude()+ ", "+point.getLongitude());
            mPointList.add(new LatLng(point.getLatitude(), point.getLongitude()));
            //添加图钉
            aMap.addMarker(getMarkerOptions(new LatLng(point.getLatitude(), point.getLongitude())));
        }


        //将地图移动到定位点
        aMap.moveCamera(CameraUpdateFactory.changeLatLng(mPointList.get(0)));
        //起点位置和  地图界面大小控制
        aMap.moveCamera(CameraUpdateFactory.newLatLngZoom(mPointList.get(0), 14));
        //aMap.setMapTextZIndex(2); // 3D地图的接口
        aMap.addPolyline((new PolylineOptions())
                //颜色
                .color(Color.argb(255,254,52,48))
                // 否画虚线
                .setDottedLine(false)
                //线的宽度
                .width(25)
                //是否为大地曲线
                .geodesic(true)
                //手动数据测试
                //.add(new LatLng(26.57, 106.71),new LatLng(26.14,105.55),new LatLng(26.58, 104.82), new LatLng(30.67, 104.06))
                //集合数据
                .addAll(mPointList));

        // clear data
        mPointList.clear();

    }

2,画纹理线

    /**
     * 画轨迹图
     * */
    private void DrawLines(){

        List<LatLng> mPointList = new ArrayList<>();
        mPointList.add(new LatLng(26.57, 106.71));
        mPointList.add(new LatLng(26.14,105.55));
        mPointList.add(new LatLng(26.58, 104.82));
        mPointList.add(new LatLng(27.68, 104.07));
        mPointList.add(new LatLng(30.67, 104.06));

        for (LatLng point : mPointList ){
            LogUtil.i("last add :"+point.getLatitude()+ ", "+point.getLongitude());
            mPointList.add(new LatLng(point.getLatitude(), point.getLongitude()));
            //添加图钉
            aMap.addMarker(getMarkerOptions(new LatLng(point.getLatitude(), point.getLongitude())));
        }

        // 添加纹理图片
        List<BitmapDescriptor> textureList = new ArrayList<BitmapDescriptor>();
        //BitmapDescriptor mRoadArrow = BitmapDescriptorFactory.fromAsset("road_red_arrow");
        BitmapDescriptor mRoadArrow = BitmapDescriptorFactory.fromResource(R.drawable.road_red_arrow);
        for (int i=1; i< mPointList.size(); i++) {
            textureList.add(mRoadArrow);
        }

        // 添加纹理图片的顺序
        List<Integer> textureIndexes = new ArrayList<>();
        for (int i=1; i< mPointList.size(); i++) {
            // 对应上面 textureList 中的第 (i-1) 个纹理
            textureIndexes.add(i-1);
        }

        //将地图移动到定位点
        aMap.moveCamera(CameraUpdateFactory.changeLatLng(mPointList.get(0)));
        //起点位置和  地图界面大小控制
        aMap.moveCamera(CameraUpdateFactory.newLatLngZoom(mPointList.get(0), 14));
        //aMap.setMapTextZIndex(2); // 3D地图的接口
        aMap.addPolyline((new PolylineOptions())
//                //颜色
//                .color(Color.argb(255,254,52,48))
//                // 否画虚线
//                .setDottedLine(false)
                //线的宽度
                .width(25)
//                //是否为大地曲线
//                .geodesic(true)
                //手动数据测试
                //.add(new LatLng(26.57, 106.71),new LatLng(26.14,105.55),new LatLng(26.58, 104.82), new LatLng(30.67, 104.06))
                //集合数据
                .addAll(mPointList)
                // 使用纹理
                .setCustomTextureList(textureList)
                .setCustomTextureIndex(textureIndexes)
//                .setCustomTexture(mRoadArrow)
                .setUseTexture(true));

        // clear data
        mPointList.clear();
        textureList.clear();
        textureIndexes.clear();

    }

3,添加图钉

    /**
     * 给点增加涂钉
     **/
    private MarkerOptions getMarkerOptions(LatLng latLng){

        //设置图钉选项
        MarkerOptions options = new MarkerOptions();
        //图标
    
   //options.icon(BitmapDescriptorFactory.fromResource(R.drawable.comm_img_checkbox_full));
        //位置
        options.position(latLng);
        StringBuffer buffer = new StringBuffer();
        // buffer.append(amapLocation.getCountry() + "" + amapLocation.getProvince() + "" + amapLocation.getCity() +  "" + amapLocation.getDistrict() + "" + amapLocation.getStreet() + "" + amapLocation.getStreetNum());
        buffer.append("地点:"+"深圳市南山区XXXXXX");
        //标题
        options.title(buffer.toString());
        //子标题
        options.snippet("定位时间:"+"2022-02-22");
        //设置多少帧刷新一次图片资源
        options.period(60);

        return options;
    }
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-03-04 15:44:08  更:2022-03-04 15:45:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 17:40:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码