帮忙改一下,总是运行不起来跪谢!
public class ClientActivity extends Activity {
private Projection projection;
private List<Overlay> overlays;
private MapController mapController;
private GeoPoint beginGeoPoint;
private GeoPoint endGeoPoint;
@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        beginGeoPoint=new GeoPoint(116,37);
        endGeoPoint=new GeoPoint(110,40);
        
        MapView mapView=(MapView)findViewById(R.id.map_view);
        mapView.setBuiltInZoomControls(true);
        
        mapController=mapView.getController();
        overlays=mapView.getOverlays();
        projection=mapView.getProjection();
        
        overlays.add(new PointOverlay(beginGeoPoint));
        overlays.add(new PointOverlay(endGeoPoint));
        overlays.add(new LineOverlay(beginGeoPoint,endGeoPoint));
        mapController.animateTo(beginGeoPoint);
        mapController.setZoom(12);
    }
   
    protected boolean isRouteDisplayed() {
        return false;
    }
    class LineOverlay extends Overlay
    {
     private GeoPoint begin;
     private GeoPoint end;
     public LineOverlay(){}
     public LineOverlay(GeoPoint begin,GeoPoint end)
     {
     this.begin=begin;
     this.end=end;
     }
     public void draw(Canvas canvas,MapView mapview,boolean shadow)
     {
     super.draw(canvas, mapview, shadow);
     Paint paint=new Paint();
     paint.setColor(Color.BLUE);
     paint.setStyle(Paint.Style.FILL_AND_STROKE);
     paint.setStrokeWidth(2);
     Point beginPoint=new Point();
     Point endPoint=new Point();
     Path path=new Path();
     projection.toPixels(beginGeoPoint,beginPoint);
     projection.toPixels(endGeoPoint,endPoint);
     path.moveTo(endPoint.x, endPoint.y);
     path.lineTo(beginPoint.x,beginPoint.y);
     canvas.drawPath(path, paint);
     }
    }
    class PointOverlay extends Overlay
    {
     private GeoPoint geopoint;
     public PointOverlay(){}
     public PointOverlay(GeoPoint geo)
     {
     this.geopoint=geo;
     }
     public void draw(Canvas canvas,MapView mapview,boolean shadow)
     {
     super.draw(canvas, mapview, shadow);
     Point point=new Point();
     projection.toPixels(geopoint,point);
     Bitmap bm=BitmapFactory.decodeResource(getResources(), R.drawable.icon);
     Paint paint=new Paint();
     canvas.drawBitmap(bm,point.x,point.y ,paint);
     }
    }
   
}

解决方案 »

  1.   

    贴出Exception 吧。。运行不起来是什么概念?
      

  2.   

    public class ClientActivity extends Activity {
    改成
    public class ClientActivity extends MapActivity 
    11-26 17:23:30.038: ERROR/AndroidRuntime(4504): Caused by: java.lang.IllegalArgumentException: MapViews can only be created inside instances of MapActivity.
    另外,你定位的目标好像经纬度搞反了,定位到海里面了。
      

  3.   

    蓝色是大海,你的经纬度错了,你加个可缩放功能
    mMapView.setBuiltInZoomControls(true);//允许缩放
    看一下你定位到哪里了
      

  4.   

    1.你2个地址太近了,2个图标重合了,化的线也看不到
    2.背景蓝色说明你的坐标在海里
    3.你没加放大缩小功能。修改你的代码:
    beginGeoPoint = new GeoPoint(1160000, 370000);
    endGeoPoint = new GeoPoint(1100000, 400000);
    mapView.setStreetView(false);
    mapView.setEnabled(true);
    mapView.setClickable(true);
      

  5.   


    运行不起来了,报错
    11-26 12:55:36.851: ERROR/AndroidRuntime(244): java.lang.RuntimeException: Unable to start activity ComponentInfo{test.Test/test.Test.TestActivity}: java.lang.ClassCastException: android.widget.TextView
    11-26 12:55:36.851: ERROR/AndroidRuntime(244):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496)
    11-26 12:55:36.851: ERROR/AndroidRuntime(244):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
    11-26 12:55:36.851: ERROR/AndroidRuntime(244):     at android.app.ActivityThread.access$2200(ActivityThread.java:119)
    11-26 12:55:36.851: ERROR/AndroidRuntime(244):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
    11-26 12:55:36.851: ERROR/AndroidRuntime(244):     at android.os.Handler.dispatchMessage(Handler.java:99)
    11-26 12:55:36.851: ERROR/AndroidRuntime(244):     at android.os.Looper.loop(Looper.java:123)
    11-26 12:55:36.851: ERROR/AndroidRuntime(244):     at android.app.ActivityThread.main(ActivityThread.java:4363)
    11-26 12:55:36.851: ERROR/AndroidRuntime(244):     at java.lang.reflect.Method.invokeNative(Native Method)
    11-26 12:55:36.851: ERROR/AndroidRuntime(244):     at java.lang.reflect.Method.invoke(Method.java:521)
    11-26 12:55:36.851: ERROR/AndroidRuntime(244):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
    11-26 12:55:36.851: ERROR/AndroidRuntime(244):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
    11-26 12:55:36.851: ERROR/AndroidRuntime(244):     at dalvik.system.NativeStart.main(Native Method)
    11-26 12:55:36.851: ERROR/AndroidRuntime(244): Caused by: java.lang.ClassCastException: android.widget.TextView
    11-26 12:55:36.851: ERROR/AndroidRuntime(244):     at test.Test.TestActivity.onCreate(TestActivity.java:42)
    11-26 12:55:36.851: ERROR/AndroidRuntime(244):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
    11-26 12:55:36.851: ERROR/AndroidRuntime(244):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
    11-26 12:55:36.851: ERROR/AndroidRuntime(244):     ... 11 more
    11-26 12:55:36.883: INFO/Process(36): Sending signal. PID: 244 SIG: 3
      

  6.   


    package com.honesty;import java.util.List;import com.google.android.maps.GeoPoint;
    import com.google.android.maps.MapActivity;
    import com.google.android.maps.MapController;
    import com.google.android.maps.MapView;
    import com.google.android.maps.Overlay;
    import com.google.android.maps.Projection;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.graphics.Canvas;
    import android.graphics.Color;
    import android.graphics.Paint;
    import android.graphics.Path;
    import android.graphics.Point;
    import android.os.Bundle;public class ClientActivity extends MapActivity {
    private Projection projection;
    private List<Overlay> overlays;
    private MapController mapController;
    private GeoPoint beginGeoPoint;
    private GeoPoint endGeoPoint; @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main); beginGeoPoint = new GeoPoint(1160000, 370000);
    endGeoPoint = new GeoPoint(1100000, 400000);
    MapView mapView = (MapView) findViewById(R.id.map_view);
    mapView.setBuiltInZoomControls(true);
    mapView.setStreetView(false);
    mapView.setEnabled(true);
            mapView.setClickable(true);
    mapController = mapView.getController();
    overlays = mapView.getOverlays();
    projection = mapView.getProjection(); overlays.add(new PointOverlay(beginGeoPoint));
    overlays.add(new PointOverlay(endGeoPoint));
    overlays.add(new LineOverlay(beginGeoPoint, endGeoPoint));
    mapController.animateTo(beginGeoPoint);
    mapController.setZoom(12);
    } protected boolean isRouteDisplayed() {
    return false;
    } class LineOverlay extends Overlay {
    private GeoPoint begin;
    private GeoPoint end; public LineOverlay() {
    } public LineOverlay(GeoPoint begin, GeoPoint end) {
    this.begin = begin;
    this.end = end;
    } public void draw(Canvas canvas, MapView mapview, boolean shadow) {
    super.draw(canvas, mapview, shadow);
    Paint paint = new Paint();
    paint.setColor(Color.BLUE);
    paint.setStyle(Paint.Style.FILL_AND_STROKE);
    paint.setStrokeWidth(2);
    Point beginPoint = new Point();
    Point endPoint = new Point();
    Path path = new Path();
    projection.toPixels(beginGeoPoint, beginPoint);
    projection.toPixels(endGeoPoint, endPoint);
    path.moveTo(endPoint.x, endPoint.y);
    path.lineTo(beginPoint.x, beginPoint.y);
    canvas.drawPath(path, paint);
    }
    } class PointOverlay extends Overlay {
    private GeoPoint geopoint; public PointOverlay() {
    } public PointOverlay(GeoPoint geo) {
    this.geopoint = geo;
    } public void draw(Canvas canvas, MapView mapview, boolean shadow) {
    super.draw(canvas, mapview, shadow);
    Point point = new Point();
    projection.toPixels(geopoint, point);
    Bitmap bm = BitmapFactory.decodeResource(getResources(),
    R.drawable.icon);
    Paint paint = new Paint();
    canvas.drawBitmap(bm, point.x, point.y, paint);
    }
    }}这是你的程序,我就该了一点
      

  7.   


    运行的效果
    http://hi.csdn.net/attachment/201111/26/10249474_1322311759cjHR.jpg.thumb.jpg