1

我的应用程序中有一个MapView。我已经让它按我的意愿工作,但我想处理所有onClick或等效的事件MapView并打开谷歌地图应用程序。

我读到我可以打开谷歌地图应用程序,但提出Intent这样的问题:

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

我怎样才能捕获我的上述事件MapView?我一直无法弄清楚这一点。谢谢。

4

2 回答 2

1

您应该有一个com.google.android.maps.Overlay在您的活动中扩展的类并使用此类的onTouchEvent()方法。像这样:

class MyOverlay extends Overlay {

    @Override
    public boolean onTouchEvent(MotionEvent e, MapView mapView) {
         ....
    }
    ....
}
于 2012-09-26T10:39:29.280 回答
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;

}
于 2012-11-05T13:57:22.597 回答