目前项目中用到百度地图根据经纬度画出路线:
mMapView.showZoomControls(false); // 隐藏放大缩小的加减号按钮
/**给百度地图给对应的坐标设置标注图*/ public void mark(double latitude,double longitude){ //定义Maker坐标点 LatLng point = new LatLng(latitude, longitude); //构建Marker图标 BitmapDescriptor bitmap = BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher); //构建MarkerOption,用于在地图上添加Marker OverlayOptions option = new MarkerOptions().position(point).icon(bitmap); //在地图上添加Marker,并显示 activity.mBaiduMap.addOverlay(option); }下面是转换经纬度的核心方法:private void initData(List<LatLng> points) { rlocus(points); } private void rlocus(List<LatLng> points) { // List<LatLng> points = new ArrayList<>(); // LatLng p1 = new LatLng(28.890605, 121.185981); // 纬度 ,经度 // LatLng p2 = new LatLng(28.884675, 121.186511); // LatLng p3 = new LatLng(28.883995, 121.199716); // LatLng p4 = new LatLng(29.71842, 120.265976); // LatLng p5 = new LatLng(28.884675, 121.186511); // LatLng p6 = new LatLng(28.884995, 121.199716); // // points.add(p1); // points.add(p2); // points.add(p3); // points.add(p4); // points.add(p5); // points.add(p6); way(points); } private void way(List<LatLng> points) { PlanNode startPoint = null ; PlanNode endPoint = null ; ArrayList<PlanNode> wayPoints = null; for (int i = 0; i < points.size(); i++) { wayPoints = new ArrayList<>(); PlanNode tempPoint = PlanNode.withLocation(points.get(i)); // 核心 if( i == 0 ){ startPoint = tempPoint; } if( i == ( points.size() - 1)) { endPoint = tempPoint; } if( i!= 0 && i != (points.size() - 1)) { wayPoints.add(tempPoint); } } if ( points.size() == 1 || points.size() == 2) { mSearch.drivingSearch((new DrivingRoutePlanOption()) .from(startPoint) .to(endPoint)); }else { mSearch.drivingSearch((new DrivingRoutePlanOption()) .from(startPoint) .passBy(wayPoints) .to(endPoint)); } }http://download.csdn.net/detail/pengyu1801/9571009 源码下载网址