Hide markers info window in android google maps API v2
Asked Answered
S

2

22

Currently I was able to view all my markers in Google maps using Android Google maps API v2.

Adding my marker in map:

mapView.addMarker
     (new MarkerOptions()
      .position(aUsersLocation).
      icon(BitmapDescriptorFactory.fromBitmap(aUserImage))
      .snippet(My_VALUE_1)
      .title(My_VALUE_2)
     .hideInfoWindow();

I have several markers and assigned few values (My_VALUE_1 and My_VALUE_2) to each marker's snippet and title. When user clicks a marker, I need these unique value and I will receive these values in onMarkerClick listener as:

        @Override
        public boolean onMarkerClick(Marker theMarker) 
        {
            String aValue1 = theMarker.getSnippet();
            String aValue2 = theMarker.getTitle();
            theMarker.getPosition().latitude...
           ...
            return false;
        }

My question is: as I am adding the snippet and title values to the marker, when user clicks the marker, infoWindow is displayed.

I need to hide the marker's infoWindow. I tried with hideInfoWindow, but it seems to be not working.

Any suggestions please.

Thank You.

Shields answered 18/6, 2013 at 19:25 Comment(0)
W
105
return true;

from onMarkerClick to disable default behavior of showing info window and centering on the marker.

Wrap answered 18/6, 2013 at 19:35 Comment(5)
By the way, if you'd still like to keep the map center animation to the marker (but just want to keep the info window hidden), just add mapView.animateCamera(CameraUpdateFactory.newLatLng(marker.getPosition())); before you return true;Snook
Thank you both very much for your answer/comment!Tidewater
What if I just wanted to show info window but not move center animation. can you please suggest solution for that problem.Translatable
@HiteshDhamshaniya Then I guess you call marker.showInfoWindow() and return true which indicates the click is handled by your code.Allies
@Wrap Thanks reply.Translatable
F
2

If you use clusters, write so:

private var clusterManager: ClusterManager<SomeClusterItem>? = null

override fun onMapReady(googleMap: GoogleMap) {
    this.googleMap = googleMap

    clusterManager = ClusterManager(context!!, googleMap)
    ... // Other clusterManager and clusterRenderer initializations.

    clusterManager!!.setOnClusterItemClickListener { item ->
        // selectMarker(item)
        true // false, if you want to show InfoWindow.
    }
}
Fetlock answered 24/3, 2020 at 8:16 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.