如何在Android中的Google Maps mapview中标记点击位置?

时间:2012-09-26 07:33:30

标签: android google-maps

我的MapActivity在我的应用程序中使用了mapview。我遇到的问题是我想点击地图上的任何位置,用文本示例显示对话框:

do you want to mark this location?

如果是,它将提取坐标并将其保存在某处(现在无关紧要),

我该怎么做?我试过使用dispatchTouchEvent方法但是我失败了。

@Override
public boolean dispatchTouchEvent(MotionEvent event) 
{   
if (event.getAction() == 1) {                
    GeoPoint p = mapView.getProjection().fromPixels(
        (int) event.getX(),
        (int) event.getY());
        // send the intent from here to your next activity with the GeoPoint coords.
        Toast.makeText(getBaseContext(), 
            p.getLatitudeE6() / 1E6 + "," + 
            p.getLongitudeE6() /1E6 , 
            Toast.LENGTH_SHORT).show();
}                      
return false;
}  

它向我显示了我的坐标 - 但每当我触摸地图时它就会这样做 - 我甚至无法移动它。

1 个答案:

答案 0 :(得分:0)

dispatchTouchEvent(MotionEvent event)的javadoc声明如下:

  

您可以覆盖它以在将所有触摸屏事件分派到窗口之前拦截它们。请务必将此实现称为应该正常处理的触摸屏事件。

所以你应该用原始方法处理所有其他事件:

public boolean dispatchTouchEvent(MotionEvent event) {   
  if (event.getAction() == 1) {
    // do your stuff
    return true;
  }                      
  return super.dispatchTouchEvent(event);
}