2012-09-26 24 views
1

我在我的應用程序中有一個MapView。我已經按照自己的意願開始工作,但我想要處理所有onClickMapView的同等事件並打開Goog​​le地圖應用程序。如何處理MapView的onClick事件並打開Goog​​le Maps應用程序?

我讀過,我可以打開谷歌地圖應用程序,但提高的Intent這樣的:

String uri = "geo:"+ latitude + "," + longitude; 
startActivity(new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(uri))); 

怎樣可以捕獲我的MapView的上述事件?我一直無法弄清楚這一點。謝謝。

+1

看看在這個答案的解決方案幫助您:http://stackoverflow.com/a/4513858/450534 –

回答

0

我用onTap事件是這樣的:

public boolean onTap(GeoPoint gptLocation, MapView mapMap) { 

    String strCoordinates = String.format("%f,%f", gptCoordinates.getLatitudeE6()/1E6, gptCoordinates.getLongitudeE6()/1E6); 
    String strUri = String.format("geo:%s?z=14", strCoordinates); 
    Intent ittMap = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(strUri)); 
    ittMap.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    this.ctxContext.startActivity(ittMap); 
    return false; 

} 
1

您應該有一個在您的活動中擴展com.google.android.maps.Overlay的類並使用此類'onTouchEvent()方法。就像這樣:

class MyOverlay extends Overlay { 

    @Override 
    public boolean onTouchEvent(MotionEvent e, MapView mapView) { 
     .... 
    } 
    .... 
} 
+0

我試着這但我仍然無法看到觸摸/點擊事件。我有一個自定義的'Overlay',用於在地圖上繪製自定義標記。我將你提到的方法添加到我的自定義'Overlay'類中,但它不起作用。關於我在做什麼的任何想法都是錯誤的? –

+0

您的活動是否擴展了MapActivity? – faradaj

+0

是的。我甚至嘗試從我的Overlay類中刪除'draw()'方法,但這並沒有幫助。我想知道這是否是佈局和其他一些控制問題,例如一個「按鈕」正在竊取焦點和觸摸事件。我已經在某處讀過這類問題。有任何想法嗎? –

相關問題