Question: When I set on touch listener for getting touch location lat long then me zoom in and out is not working its working when I remove on touch listener from my code. So how to achieve to work zoom in and out in Google map and get touch location lat long? 

My code is below

```
   mapView = (MapView) findViewById(R.id.map);
    mapView.setBuiltInZoomControls(true);
     mapView.setOnTouchListener(new View.OnTouchListener() {
            @Override

            public boolean onTouch(View v, MotionEvent event) {
                Log.i("!!!!!","*****");

            //---when user lifts his finger---

                if (event.getAction() == MotionEvent.ACTION_UP) {

                     Projection p2 = mapView.getProjection();
                     GeoPoint geoPoint = p2.fromPixels((int) event.getX(), (int)event.getY());
                     int latitude = geoPoint.getLatitudeE6();
                     int longitude = geoPoint.getLongitudeE6();
                     String aString = Integer.toString(latitude);
                     String aString2 = Integer.toString(longitude);

                     Log.i("latitude,longitude",aString+",,"+aString2);
                     if((latitude < -34.538238) && (latitude > -34.672182))
                     {
                      if((longitude < -58.347702) && (longitude > -58.528976))
                      {
                         Log.i("lat,long",aString+",,"+aString2);
                      }
                      else 
                      {
                             Log.i("out of region",aString+",,"+aString2);

                      }}
                    Log.i("@@@@@!!!!!","*****");

                }
                return true;

            }

            });

```

Answer: 
When you `setOnTouchListener` your `setBuiltInZoomControls(true)` will not work.
You may show zoom button by command `displayZoomControls(true)`. Your map will not zoom and will not move by touch or multitouch but you will can zooming map by clicking to the zoom button.

The other way is to shut off listener by `mapView.setOnTouchListener(null)` and zooming map by `setBuiltInZoomControls(true)` when you don't need processing touch but need to zoom map. In the moment when you need to process touch you set listener `mapView.setOnTouchListener(new OnTouchLister(...))` but opportunity zooming by touch is lost. When touch isn't needed do `mapView.setOnTouchListener(null)` and again `setBuiltInZoomControls(true)` to zoom map.
Try this. Should be able to get the zoom controls and the GeoPoint stuff you were doing earlier.

```
public boolean onTouchEvent(MotionEvent event,MapView m) {
    boolean status = false;
    int start,stop = 0;
    long long_click_time = 1500;  //1.5 seconds 
    if(e.getAction() == MotionEvent.ACTION_DOWN){
       start = event.getEventTime();
    }

    if(e.getAction()==MotionEvent.ACTION_UP){
       stop = event.getEventTime();
    }

    if(stop-start>long_click_time){
       //do your work
       status = true;
    }

    return status;
}

```

Returning false should give you the zoom controls. The method should be in a subclass of Overlay. In the code below, the class "Touchy" inherits from Overlay.

```
List<Overlay> overlayList = this.map.getOverlays();
Touchy touchy = new Touchy(Maps.this);
overlayList.add(touchy);

```