2013-02-28 7 views
32

Ich füge Standard Marker zeigen die folgende Art und Weise Googlemap:Immer Kartenmarkierung Titel in Android

GoogleMap map = ((MapFragment) getFragmentManager().findFragmentById(R.id.editMapMap)).getMap(); 

MarkerOptions markerOptions = new MarkerOptions(); 
markerOptions.position(currentLocation.getCoordinate()); 
markerOptions.title(Utils.getLocationString(currentLocation.getCoordinate())); 
markerOptions.snippet("Blah"); 

locationMarker = map.addMarker(markerOptions); 
locationMarker.setDraggable(true); 

Wie kann ich Marker immer zeigen Titel machen und Schnipsel ohne Touch? Ich möchte auch deaktivieren sie bei Berührung zu verstecken.

Antwort

77

Es ist sehr einfach:

locationMarker.showInfoWindow(); 
3

Nur return false für onMarkerClickListener, wenn Sie true zurück, zeigt die infoWindow.

Titel auszublenden, wenn wir auf Markierung klicken:

map.setOnMarkerClickListener(this); 
... 

@Override 
public boolean onMarkerClick(Marker arg0) {  
    Log.i(TAG,"marker arg0 = "+arg0);    
    return false; 
} 

Wenn wir wahre Titel zurückkehren sehen sein, sonst, wenn wir falsche Titel nicht wieder angezeigt wird.

+0

ist dies für Google Maps v2 möglich? Ich gebe falsch zurück, aber der Marker zeigt immer noch den Titel ... – Ricky

+0

ja. Es funktioniert für V2. Ich habe nur für V2 versucht. Eine andere Alternative ist, dass der Titel als leere Zeichenfolge eingefügt wird. d. h. "" Aber ist nicht gut – sandeepmaaram

3

Es gibt zwei Methoden zum Anzeigen und Ausblenden der Markierungen. Der boolesche Rückgabewert verhindert einfach, dass das Standardverhalten stattfindet (false) oder lässt es zu (true). Mit anderen Worten informiert es das System, ob Sie das Ereignis verbraucht haben oder nicht. Siehe Google API Reference.

private GoogleMap.OnMarkerClickListener onMarkerClickedListener = new GoogleMap.OnMarkerClickListener() { 
    @Override 
    public boolean onMarkerClick(Marker marker) { 
     if (marker.isInfoWindowShown()) { 
      marker.hideInfoWindow(); 
     } else { 
      marker.showInfoWindow(); 
     } 
     return true; 
    } 
}; 

mGoogleMap.setOnMarkerClickListener(onMarkerClickedListener); 
2

Verwenden Sie showInfoWindow() und fügen Sie Marker wie folgt hinzu.

Marker marker = mMap.addMarker(new MarkerOptions().position(currentPosition).title("Your text")); 
marker.showInfoWindow(); 
Verwandte Themen