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

  • akalyne

    akalyne

    13 Mayıs 2009
  • Canal TekZoom

    Canal TekZoo

    1 NİSAN 2012
  • TheMasterOfHell100

    TheMasterOfH

    13 AĞUSTOS 2011