SORU
1 ŞUBAT 2010, PAZARTESİ


Bir çizgi/yol Google Maps

Uzun bir süre iki (GPS) HelloMapView harita üzerinde puan ama şans ile arasında bir çizgi çizmek için nasıl bulmak için meşguldüm.

Herkes bunu yapmak için nasıl söyler.

MapView uzanan HelloMapView kullanıyorum sanırım. Bindirmeleri kullanmam gerekiyor? Eğer öyleyse onDraw geçersiz kılmak zorunda mıyım() bindirme yöntemi ve bir çizgi çizmek ister? Ben aslında ama neden bunları denedim.

Şimdiden teşekkürler!

CEVAP
2 ŞUBAT 2010, Salı


Yardımlarınız için teşekkür ederim. Sonunda haritada bir çizgi çizebilirim. Bunu ben yaptım nasıl:

/** Called when the activity is first created. */
private List<Overlay> mapOverlays;

private Projection projection;  

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    linearLayout = (LinearLayout) findViewById(R.id.zoomview);
    mapView = (MapView) findViewById(R.id.mapview);
    mapView.setBuiltInZoomControls(true);

    mapOverlays = mapView.getOverlays();        
    projection = mapView.getProjection();
    mapOverlays.add(new MyOverlay());        

}

@Override
protected boolean isRouteDisplayed() {
    return false;
}

class MyOverlay extends Overlay{

    public MyOverlay(){

    }   

    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 projection=mapv.getProjection();
        projection.toPixels(gP1, p1);
        projection.toPixels(gP2, p2);

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

        canvas.drawPath(path, mPaint);
    }

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • kremosakhaz

    kremosakhaz

    25 AĞUSTOS 2006
  • Smith Micro Graphics

    Smith Micro

    15 Mayıs 2008
  • UberFacts

    UberFacts

    26 EKİM 2013