Java 如何处理地图视图';单击事件并打开谷歌地图应用程序?
我的应用程序中有一个Java 如何处理地图视图';单击事件并打开谷歌地图应用程序?,java,android,android-mapview,android-maps,android-event,Java,Android,Android Mapview,Android Maps,Android Event,我的应用程序中有一个MapView。我已经让它按我所希望的方式工作,但我想处理所有的onClick或MapView的等效事件,并打开Google地图应用程序 我已经读到,我可以打开谷歌地图应用程序,但提出了一个意图,如下所示: String uri = "geo:"+ latitude + "," + longitude; startActivity(new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(uri))); public
MapView
。我已经让它按我所希望的方式工作,但我想处理所有的onClick
或MapView
的等效事件,并打开Google地图应用程序
我已经读到,我可以打开谷歌地图应用程序,但提出了一个意图,如下所示:
String uri = "geo:"+ latitude + "," + longitude;
startActivity(new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(uri)));
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;
}
如何捕获myMapView
的上述事件?我还没弄明白。谢谢。您应该在活动中有一个扩展com.google.android.maps.Overlay
的类,并使用这个类“onTouchEvent()
方法。像这样:
class MyOverlay extends Overlay {
@Override
public boolean onTouchEvent(MotionEvent e, MapView mapView) {
....
}
....
}
您应该在活动中有一个扩展com.google.android.maps.Overlay
的类,并使用这个类“onTouchEvent()
方法。像这样:
class MyOverlay extends Overlay {
@Override
public boolean onTouchEvent(MotionEvent e, MapView mapView) {
....
}
....
}
我使用的onTap
事件如下:
String uri = "geo:"+ latitude + "," + longitude;
startActivity(new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(uri)));
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;
}
我使用的onTap
事件如下:
String uri = "geo:"+ latitude + "," + longitude;
startActivity(new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(uri)));
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;
}
查看此答案中的解决方案是否对您有帮助:查看此答案中的解决方案是否对您有帮助:我尝试了此方法,但似乎仍然无法获得触摸/点击事件。我有一个自定义的覆盖图
,用来在地图上绘制自定义标记。我将您提到的方法添加到我的自定义Overlay
类中,但它不起作用。你知道我做错了什么吗?你的活动扩展了MapActivity吗?是的。我甚至试着从我的Overlay
类中删除draw()
方法,但是没有用。我想知道是不是布局和一些其他控件(例如按钮
窃取焦点和触摸事件)有问题。我在什么地方读到过这类问题。有什么想法吗?我试过了,但似乎还是无法获得触摸/点击事件。我有一个自定义的覆盖图
,用来在地图上绘制自定义标记。我将您提到的方法添加到我的自定义Overlay
类中,但它不起作用。你知道我做错了什么吗?你的活动扩展了MapActivity吗?是的。我甚至试着从我的Overlay
类中删除draw()
方法,但是没有用。我想知道是不是布局和一些其他控件(例如按钮
窃取焦点和触摸事件)有问题。我在什么地方读到过这类问题。有什么想法吗?