class MapOverlay extends Overlay implements OnGestureListener{
  
  private MapView _mapView;
  
  public boolean draw(Canvas canvas, MapView mapView, boolean shadow, long when){
   super.draw(canvas, mapView, shadow);
   
   mGestureDetector = new GestureDetector(this);
   
   Point screenPoint = new Point();
   // 현재 자신의 위치로 초기화
   mapView.getProjection().toPixels(myPoint, screenPoint);

   Bitmap bmp = BitmapFactory.decodeResource(getResources(),    
     R.drawable.androidmarker);
   canvas.drawBitmap(bmp, screenPoint.x, screenPoint.y, null);
   
   return true;
  }

  //////////////////////////////////////////////////////////////////////////////////////

  public boolean onTouchEvent(MotionEvent event, MapView mapView) {
   _mapView = mapView;
   /* 맵뷰에서 받은 터치 이벤트를 제스쳐 리스너로 보냄
    * -> 제스쳐 리스너에 implement 된 함수 실행
    * */
   mGestureDetector.onTouchEvent(event);
   return false;
  }
  
  public boolean onDown(MotionEvent e) {
   Log.i("bs","onDown Event");
   // TODO Auto-generated method stub
   return false;
  }

  public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
    float velocityY) {
   // TODO Auto-generated method stub
   return false;
  }

  public void onLongPress(MotionEvent e) {
   Log.i("bs","onLongPress Event");
   /*
   Toast mToast = Toast.makeText(getApplicationContext(), "Long Press",
     Toast.LENGTH_SHORT);

   mToast.show();*/
   
   GeoPoint p = _mapView.getProjection().fromPixels((int) e.getX(),
     (int) e.getY());
   //_mapView.getController().animateTo(p);
   // 현재 p에 들어있는 위도 경도는 정수형이라서 1E6으로 나누어줌.
   Toast.makeText(getBaseContext(),
     p.getLatitudeE6() / 1E6 + "," + p.getLongitudeE6() / 1E6,
     Toast.LENGTH_SHORT).show();
   
  }

  public boolean onScroll(MotionEvent e1, MotionEvent e2,
    float distanceX, float distanceY) {
   // TODO Auto-generated method stub
   return false;
  }

  public void onShowPress(MotionEvent e) {
   // TODO Auto-generated method stub
   Log.i("bs","onShowPress Event");   
  }

  public boolean onSingleTapUp(MotionEvent e) {
   // TODO Auto-generated method stub
   return false;
  }


제가 overlay를 상속한 클래스에  OnGestureListener를 implements 시켰습니다.

longPress시에 위도 경도를 Toast를 사용해서 뿌려주게 만들었는데요.

이상하게 longPress가 아니라 단순 터치시에도 LongPress 함수가 호출이 됩니다.

Log로 찍어봤더니 onDown -> onShortPress -> onLongPress 순으로 함수가 불리는데 말이죠.

어디가 잘못된걸까요?