Android 地图开发,高德地图,两点画线或者多点 画线

您所在的位置:网站首页 高德地图看人流 Android 地图开发,高德地图,两点画线或者多点 画线

Android 地图开发,高德地图,两点画线或者多点 画线

2023-07-08 10:10| 来源: 网络整理| 查看: 265

最近用高德地图做一些绘制行走路线的功能,帖子写的都好模糊,

我这里整个最简单的

先上效果图,只看地图部分即可,地图高度宽度可以修改的效果图下面是具体代码

首先还是最简单的布局文件

   

然后是代码部分

--------我是分割线----------------------------------------------

//声明一个外部变量

MapView mapView;

/**

 * protected void onCreate(Bundle savedInstanceState) {

 * 参数就是这玩意 savedInstanceState

 *然后直接调用这个方法就好

 */

    private void setMap(Bundle savedInstanceState){

        mapView = (MapView) findViewById(R.id.map);

        //必须

        mapView.onCreate(savedInstanceState);

        AMap aMap = mapView.getMap();

        List latLngList = getLatLngList();

        //移动相机到中心点,第二个参数是相机缩放倍数

        aMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLngList.get(0), 18));

        //画线 具体参数可以在这里修改

        aMap.addPolyline(new PolylineOptions()

                .addAll(latLngList)//添加一个LatLng列表

                .color(Color.RED)//线条的颜色

                .width(10f)//线条的宽度

                .setDottedLine(false)//点线?虚线?

        );

    }

//这个是设置具体的路径参数,可以设置复数多个

    private List getLatLngList() {

        List latLngList = new ArrayList();

        /*         */ 有几个点 线就会跟着绕   2个也行 M个也行         */

        latLngList.add(new LatLng(23.11538, 113.395984));

        latLngList.add(new LatLng(23.11538, 113.395004));

        latLngList.add(new LatLng(23.11508, 113.395004));

        return latLngList;

    }

--------我是分割线----------------------------------------------

这里附上一个拓展方法就是设置一个 提示语 没需要可以无视这个

用法是直接靠过去,把aMap对应上就好

     //带自定义文本的Marker标记

        Bitmap bitmap = setCanvasTitle("起始位置");//设置提示语的图片

        aMap.addMarker(new MarkerOptions().icon(BitmapDescriptorFactory.fromBitmap(bitmap))

                .position(latLngList.get(0)));

        Bitmap bitmap1 = setCanvasTitle( "结束位置");//设置提示语的图片

        aMap.addMarker(new MarkerOptions().icon(BitmapDescriptorFactory.fromBitmap(bitmap1))

                .position(latLngList.get(2)));

    /**

     * 设置坐标的提示语 和小图标  bitmap

     */

    private Bitmap setCanvasTitle(String s) {

        Bitmap bitmap = BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE).getBitmap();

        bitmap = imageScale(bitmap, 150, 150);//调整图片的大小

        Canvas canvas = new Canvas(bitmap);

        Paint paint = new Paint();

        paint.setColor(Color.WHITE);

        paint.setTextAlign(Paint.Align.CENTER);

        paint.setTextSize(25f);

        paint.setTypeface(Typeface.DEFAULT_BOLD);

        canvas.drawText(s, bitmap.getWidth() / 2, bitmap.getHeight() / 2, paint);

        return  bitmap;

    }

/** * 棋子图片设置大小 * * @param qipan bitmap * @param dst_w 设置的宽度 * @param dst_h 设置的高度 * @return */public Bitmap imageScale(Bitmap qipan, int dst_w, int dst_h) {    //原始bitmap的宽高    int src_w = qipan.getWidth();    int src_h = qipan.getHeight();

   // 设置的宽高和原来的宽高的比例    float scale_w = ((float) dst_w) / src_w;    float scale_h = ((float) dst_h) / src_h;

   //比例    Matrix matrix = new Matrix();    matrix.postScale(scale_w, scale_h);    Bitmap Qipan = Bitmap.createBitmap(qipan, 0, 0, src_w, src_h, matrix, true);    return Qipan;}

--------我是分割线----------------------------------------------



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3