欢迎光临散文网 会员登陆 & 注册

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

2023-07-05 04:46 作者:翼618  | 我要投稿

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

我这里整个最简单的


先上效果图,只看地图部分即可,地图高度宽度可以修改的

效果图

下面是具体代码


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

    <com.amap.api.maps.MapView

        android:layout_marginTop="10dp"

        android:id="@+id/map"

        android:layout_width="match_parent"

        android:layout_height="150dp"/>


然后是代码部分


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

//声明一个外部变量

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<LatLng> 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<LatLng> getLatLngList() {

        List<LatLng> 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;

    }

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



Android 地图开发,高德地图,两点画线或者多点 画线的评论 (共 条)

分享到微博请遵守国家法律