百度地图画轨迹连接线

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

0 0