Android 地图开发,高德地图,两点画线或者多点 画线 |
您所在的位置:网站首页 › 高德地图看人流 › Android 地图开发,高德地图,两点画线或者多点 画线 |
最近用高德地图做一些绘制行走路线的功能,帖子写的都好模糊, 我这里整个最简单的 先上效果图,只看地图部分即可,地图高度宽度可以修改的效果图下面是具体代码首先还是最简单的布局文件
然后是代码部分 --------我是分割线----------------------------------------------//声明一个外部变量 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 |