Android 在谷歌地图屏幕上消费运动

Android 在谷歌地图屏幕上消费运动,android,google-maps,onclick,Android,Google Maps,Onclick,我正在尝试获取用户在谷歌地图上单击的位置(纬度、经度),如何才能做到这一点 我试着在网上找到它,但没有运气。关于下面提到的HelloItemizeOverlay类,请参阅此部分了解确切的实现。这将在您单击标记的任何位置创建标记,还将允许用户拖动地图并查找要查看的位置 class HelloGoogleMaps extends MapActivity { @Override public void onCreate(Bundle savedInstanceState) { List<Over

我正在尝试获取用户在谷歌地图上单击的位置(纬度、经度),如何才能做到这一点


我试着在网上找到它,但没有运气。

关于下面提到的HelloItemizeOverlay类,请参阅此部分了解确切的实现。这将在您单击标记的任何位置创建标记,还将允许用户拖动地图并查找要查看的位置

class HelloGoogleMaps extends MapActivity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
List<Overlays> mapOverlays = map.getOverlays();
//This is going to be your pointer (you can use whatever image you want as your indicator
final Drawable drawable = this.getResources().getDrawable(R.drawable.indicator);
map.setOnTouchListener(new View.OnTouchListener() {

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if(event.getAction() == MotionEvent.ACTION_UP)
        {
        HelloItemizedOverlay itemizedoverlay = new HelloItemizedOverlay(drawable, HelloGoogleMaps.this);
        GeoPoint p = mapView.getProjection().fromPixels(
            (int) event.getX(), (int) event.getY());
        String lat = Double.toString(p.getLatitudeE6() / (Math.pow(10,6)));
        String lon = Double.toString(p.getLongitudeE6() / (Math.pow(10,6)));
        OverlayItem overlayitem = new OverlayItem(p, "Title text", "Body Text");
        itemizedoverlay.addOverlay(overlayitem);
        mapOverlays.add(itemizedoverlay);
        map.postInvalidate();
        return true;
        }
    }
});
}
类HelloLogleMaps扩展了MapActivity
{
@凌驾
创建时的公共void(Bundle savedInstanceState)
{
List mapOverlays=map.getOverlays();
//这将是你的指针(你可以使用任何你想要的图像作为你的指示器)
final Drawable Drawable=this.getResources().getDrawable(R.Drawable.indicator);
map.setOnTouchListener(新视图.OnTouchListener(){
@凌驾
公共布尔onTouch(视图v,运动事件){
if(event.getAction()==MotionEvent.ACTION\u UP)
{
HelloItemizedOverlay itemizedoverlay=新的HelloItemizedOverlay(可绘制,HelloLogleMaps.this);
地理点p=mapView.getProjection().fromPixels(
(int)event.getX(),(int)event.getY();
String lat=Double.toString(p.getLatitudeE6()/(Math.pow(10,6));
字符串lon=Double.toString(p.getLongitudeE6()/(Math.pow(10,6));
OverlayItem OverlayItem=新的OverlayItem(p,“标题文本”、“正文文本”);
itemizedoverlay.addOverlay(overlayitem);
添加(itemizedoverlay);
map.postInvalidate();
返回true;
}
}
});
}

问题在于,它会覆盖上一个onClickListener,使映射成为静态的,并且没有getOnClickListener()方法,因此我无法保留上一个方法,您有什么建议?它使映射成为静态是什么意思?您希望在onClickListener()中执行什么操作方法,因为在onClickListener()方法中可以执行的任何操作都可以很容易地导入到onTouch()中方法,让我知道您试图在onClickListener中实现什么功能,我将告诉您如何将其应用到onTouch中。我想让用户在地图中选择一个点,并通过在地图上的某个点上显示一些指示器来将该点标记为choosen,而用户仍然可以拖动地图并继续ek用于查看位置,但首先我想通过将Lat和Lng写入接触点的文本视图来确保这一点,这样做就可以了。@OfekRon请检查我编辑的代码。我已经实现了您所需的功能。