문제

So I've been trying to detect click events to a MapView in order to start a method with the click.

Trying any variation of standard onClickListener or onTouch were no good.

I do not want to add an overlay of to "catch" clicks on a certain part of the map. I want the map to continue to be responsive to drag,zooms, etc.

Any help would be appreciated.

도움이 되었습니까?

해결책

So, apparently the solution is quite simple. I guess it was added in one of the last support libs. GoogleMap now supports onMapClick.

mMapView.getMap().setOnMapClickListener(new OnMapClickListener()
                {
                    @Override
                    public void onMapClick(LatLng arg0)
                    {
                        android.util.Log.i("onMapClick", "Horray!");
                    }
                });

다른 팁

In the new version of Google Play services, you should call the method after the map is ready, at the onMapReady(GoogleMap map); callback.

 @Override
public void onMapReady(GoogleMap googleMap) {
    googleMap.setOnMapClickListener(new GoogleMap.OnMapClickListener()
    {
        @Override
        public void onMapClick(LatLng arg0)
        {
            android.util.Log.i("onMapClick", "Horray!");
        }
    });
}
public class MapView  implements OnMapReadyCallback, GoogleMap.OnMarkerClickListener {

   @Override
   public boolean onMarkerClick(Marker marker) {
       println("click marker");
   }
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top