package app.com;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.Point;
import android.graphics.Paint.Style;
import android.os.Bundle;

import com.baidu.mapapi.BMapManager;
import com.baidu.mapapi.GeoPoint;
import com.baidu.mapapi.MapActivity;
import com.baidu.mapapi.MapController;
import com.baidu.mapapi.MapView;
import com.baidu.mapapi.Overlay;
import com.baidu.mapapi.Projection;


public class AppActivity extends MapActivity {
    private BMapManager mBMapMan;
    private MapView mapView;     private String mStrKey;
    private GeoPoint gPoint1,gPoint2,gPoint3;//连线的点
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        mStrKey ="输入你的key值";         mBMapMan=new BMapManager(AppActivity.this);
        mBMapMan.init( mStrKey , null);         super.initMapActivity(mBMapMan);

        // 地图控件初始化
        mapView=(MapView)findViewById(R.id.bmapsView);
        mapView.setBuiltInZoomControls(true);
        mapView.setDrawOverlayWhenZooming(true);
        
        MyOverlay myOverlay=new MyOverlay();
        mapView.getOverlays().add(myOverlay);
        
        MapController mapController=mapView.getController();  
        mapController.zoomIn();
        
        // 定义一个经纬度
        gPoint1 = new GeoPoint((int) (39.915*1E6),(int) (116.404*1E6));
        gPoint2 = new GeoPoint((int) (39.868935*1E6),(int) (116.39078*1E6));
        gPoint3 = new GeoPoint((int) (39.85963*1E6),(int) (116.44194*1E6));
        mapController.animateTo(gPoint1);

    }

    
    class MyOverlay extends Overlay
    {
    @Override
    public void draw(Canvas canvas, MapView mapView, boolean shadow) {
        // TODO Auto-generated method stub
        super.draw(canvas, mapView, shadow);
        Projection projection=mapView.getProjection();
        Point p1=new Point();
        Point p2=new Point();
        Point p3=new Point();
        
        //经度转像素
        projection.toPixels(gPoint1, p1);
        projection.toPixels(gPoint2, p2);
        projection.toPixels(gPoint3, p3);
        
        //第一个画笔   画圆
        Paint fillPaint=new Paint();
        fillPaint.setColor(Color.BLUE);
        fillPaint.setAntiAlias(true);
        fillPaint.setStyle(Style.FILL);
        
        //将图画到上层
        canvas.drawCircle(p1.x, p1.y, 5.0f, fillPaint);
        canvas.drawCircle(p2.x, p2.y, 5.0f, fillPaint);
        canvas.drawCircle(p3.x, p3.y, 5.0f, fillPaint);
        
        //第二个画笔  画线
        Paint paint=new Paint();
        paint.setColor(Color.BLUE);
        paint.setDither(true);
        paint.setStyle(Paint.Style.STROKE);
        paint.setStrokeJoin(Paint.Join.ROUND);
        paint.setStrokeCap(Paint.Cap.ROUND);
        paint.setStrokeWidth(4);
        
        //连线
        Path path=new Path();
        path.moveTo(p1.x, p1.y);
        path.lineTo(p2.x, p2.y);
        path.lineTo(p3.x, p3.y);
        
        //画出路径
        canvas.drawPath(path, paint);
    }
    }

    
    @Override
    protected boolean isRouteDisplayed() {
    // TODO Auto-generated method stub
    return false;
    }

    @Override
    protected void onDestroy() {
    if (mBMapMan!=null) {
        mBMapMan.destroy();
        mBMapMan=null;
    }
    super.onDestroy();
    }

    @Override
    protected void onPause() {
    if (mBMapMan!=null) {
        mBMapMan.stop();
    }
    super.onPause();
    }

    @Override
    protected void onResume() {
    if (mBMapMan!=null) {
        mBMapMan.start();
    }
    super.onResume();
    }
}

更多相关文章

  1. android:自定义圆环形百分比控件,代码简单,加载动画,代码详细说明
  2. Android(安卓)自定义动画 单个View平面位移以及一组View轮回旋转
  3. Android绘图机制(二)--2D绘图基础
  4. android画笔移位解决
  5. 利用Canvas实现在屏幕随机位置绘制10个大小(边长为10-160)颜色随
  6. Android(安卓)自定义View(三):重写View实现全新控件
  7. 100行代码撸一个可渐变颜色的TextView
  8. Android(安卓)对View的一些理解
  9. Android绘图机制(一)——自定义View的基础属性和方法

随机推荐

  1. 更新后-崩溃com.google.android.gms:play
  2. Android 进阶:Fragment 源码深入理解
  3. 显示操作栏和向上导航 - Android
  4. Android View事件传播机制
  5. 给讲讲它吧---AndroidManifest.xml
  6. 使用RelativeLayout动态添加View总结
  7. android技巧:把自己的app变成手机系统自
  8. Android获取明天日期
  9. ViewPager的循环滑动
  10. android中fragment和activity之间相互通