android 百度地图 画轨迹

    1. import android.content.Context;  
    2. import android.graphics.Canvas;  
    3. import android.graphics.Color;  
    4. import android.graphics.Paint;  
    5. import android.graphics.Paint.Style;  
    6. import android.graphics.Path;  
    7. import android.graphics.Point;  
    8. import android.os.Bundle;  
    9. import com.baidu.mapapi.BMapManager;  
    10. import com.baidu.mapapi.GeoPoint;  
    11. import com.baidu.mapapi.MapActivity;  
    12. import com.baidu.mapapi.MapController;  
    13. import com.baidu.mapapi.MapView;  
    14. import com.baidu.mapapi.Overlay;  
    15. import com.baidu.mapapi.Projection;  
    16.   
    17. public class BaiduMapActivity extends MapActivity {  
    18.         private Context mContext;  
    19.         private MapView mapView;  
    20.         @Override  
    21.         protected boolean isRouteDisplayed() {  
    22.                 // TODO Auto-generated method stub  
    23.                 return false;  
    24.         }  
    25.         private GeoPoint gpoint1, gpoint2, gpoint3;// 连线的点  
    26.         @Override  
    27.         protected void onCreate(Bundle arg0) {  
    28.                 super.onCreate(arg0);  
    29.                 setContentView(R.layout.baidumap_layout);  
    30.   
    31.                 BaseApplication baseApp = (BaseApplication) this.getApplication();  
    32.                 if (baseApp.mBMapManage == null) {  
    33.                         baseApp.mBMapManage = new BMapManager(mContext);  
    34.                         baseApp.mBMapManage.init(baseApp.mStrKey,  
    35.                                         new BaseApplication.MyGeneralListener());  
    36.                 }  
    37.                 baseApp.mBMapManage.start();  
    38.                 super.initMapActivity(baseApp.mBMapManage);// 初始化map sdk  
    39.                 mapView = (MapView) findViewById(R.id.bmapView);  
    40.                 mapView.setBuiltInZoomControls(true);  
    41.                 // 设置在缩放动画过程中也显示overlay,默认为不绘制  
    42.                 mapView.setDrawOverlayWhenZooming(true);  
    43.   
    44.                 // RouteLine routeLine =  
    45.                 // (RouteLine)getIntent().getSerializableExtra("routeLine");  
    46.   
    47.                 //这里画点和连接线  
    48.                 MyOverlay myOverlay = new MyOverlay();  
    49.                 mapView.getOverlays().add(myOverlay);  
    50.                   
    51.                 MapController mapController = mapView.getController();  
    52.                 mapController.zoomIn();  
    53.                   
    54.                 gpoint1 = new GeoPoint((int) (2259316 * 10),  
    55.                                 (int) (11396279 * 10));  
    56.                 gpoint2 = new GeoPoint((int) (2259245 * 10),  
    57.                                 (int) (11396226 * 10));  
    58.                 gpoint3 = new GeoPoint((int) (2259121 * 10),  
    59.                                 (int) (11396066 * 10));                  
    60.                 mapController.animateTo(gpoint1);//设置一个起点  
    61.         }  
    62.   
    63.         class MyOverlay extends Overlay {  
    64.   
    65.                 @Override  
    66.                 public void draw(Canvas canvas, MapView mapView, boolean shadow) {  
    67.                         super.draw(canvas, mapView, shadow);  
    68.                           
    69.                         Projection projection = mapView.getProjection();  
    70.                         Point p1 = new Point();  
    71.                         Point p2 = new Point();  
    72.                         Point p3 = new Point();  
    73.                         // 经度转像素  
    74.                         projection.toPixels(gpoint1, p1);  
    75.                         projection.toPixels(gpoint2, p2);  
    76.                         projection.toPixels(gpoint3, p3);  
    77.                   
    78.                         //第一个画笔 画圆  
    79.                         Paint fillPaint = new Paint();  
    80.                         fillPaint.setColor(Color.BLUE);  
    81.                         fillPaint.setAntiAlias(true);  
    82.                         fillPaint.setStyle(Style.FILL);  
    83.                           
    84.                         // 将图画到上层  
    85.                         canvas.drawCircle(p1.x, p1.y, 5.0f, fillPaint);  
    86.                         canvas.drawCircle(p2.x, p2.y, 5.0f, fillPaint);  
    87.                         canvas.drawCircle(p3.x, p3.y, 5.0f, fillPaint);  
    88.   
    89.                         //第二个画笔 画线  
    90.                         Paint paint = new Paint();  
    91.                         paint.setColor(Color.BLUE);  
    92.                         paint.setDither(true);  
    93.                         paint.setStyle(Paint.Style.STROKE);  
    94.                         paint.setStrokeJoin(Paint.Join.ROUND);  
    95.                         paint.setStrokeCap(Paint.Cap.ROUND);  
    96.                         paint.setStrokeWidth(4);  
    97.   
    98.                         //连接  
    99.                         Path path = new Path();  
    100.                         path.moveTo(p1.x, p1.y);  
    101.                         path.lineTo(p2.x, p2.y);  
    102.                         path.lineTo(p3.x, p3.y);  
    103.                         //画出路径  
    104.                         canvas.drawPath(path, paint);  
    105.                 }  
    106.         }  
    107.   

原文地址:https://www.cnblogs.com/rollrock/p/2622819.html