-1

教えてください、理解できない時間がたくさんあります。

私は地図を持っています。あなたらしく描きたい。

問題は、すべての例が mapView であり、フラグメントがあることです。

ルートの描き方がわかりません。

アクティビティを作成するには?

そう

public class TravelMapActivity extends Activity implements OnClickListener {
    private GoogleMap map;
    private ToggleButton travelOnOffButton;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.travel_map_activity);
        init();
        map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();

        travelOnOffButton = (ToggleButton) findViewById(R.id.travel_start_stop);
        travelOnOffButton.setOnClickListener(this);
    }

とか、ぐらい?

public class TravelMapActivity extends FragmentActivity implements OnClickListener {
    private GoogleMap map;
    private ToggleButton travelOnOffButton;
    private SupportMapFragment mMapFragment;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        mMapFragment = new SupportMapFragment();
        try {
            MapsInitializer.initialize(this);
        } catch (GooglePlayServicesNotAvailableException e) {
            // TODO handle error
            e.printStackTrace();
        }
        getSupportFragmentManager().beginTransaction().add(android.R.id.content, mMapFragment).commit();

        travelOnOffButton = (ToggleButton) findViewById(R.id.travel_start_stop);
        travelOnOffButton.setOnClickListener(this);
    }

この場合、オンラインの setOnClickListener - NullPointerException をスローします。

そして例として。

class RouteOverlay extends Overlay {

    private Projection projection;

    public RouteOverlay() {
    }

    public void draw(Canvas canvas, MapView mapv, boolean shadow) {
        super.draw(canvas, mapv, shadow);

        Paint mPaint = new Paint();
        mPaint.setDither(true);
        mPaint.setColor(Color.RED);
        mPaint.setStyle(Paint.Style.FILL_AND_STROKE);
        mPaint.setStrokeJoin(Paint.Join.ROUND);
        mPaint.setStrokeCap(Paint.Cap.ROUND);
        mPaint.setStrokeWidth(2);

        GeoPoint gP1 = new GeoPoint(19240000, -99120000);
        GeoPoint gP2 = new GeoPoint(37423157, -122085008);

        Point p1 = new Point();
        Point p2 = new Point();
        Path path = new Path();

        projection.toPixels(gP1, p1);
        projection.toPixels(gP2, p2);

        path.moveTo(p2.x, p2.y);
        path.lineTo(p1.x, p1.y);

        canvas.drawPath(path, mPaint);
    }
}
4

1 に答える 1

0

Maps V2 でルートを描画するには、 に を追加しPolylineますGoogleMap:

PolylineOptions line=
      new PolylineOptions().add(new LatLng(40.70686417491799,
                                           -74.01572942733765),
                                new LatLng(40.76866299974387,
                                           -73.98268461227417),
                                new LatLng(40.765136435316755,
                                           -73.97989511489868),
                                new LatLng(40.748963847316034,
                                           -73.96807193756104))
                           .width(5).color(Color.RED);

  map.addPolyline(line);

(このサンプル プロジェクトから取得したコード)

于 2013-02-14T13:51:31.440 に答える