2013-04-10 15 views
27

Ich bin auf der Suche nach einer Möglichkeit, die Auto-Center meines Kartenfragments auf ausgewählte Marker-Funktionalität zu deaktivieren. Ich möchte immer noch die Markierungen InfoWindow anzeigen, aber zentriere nicht die gesamte Karte auf der Markierung, die ich ausgewählt habe.So deaktivieren Sie Android-Kartenmarker Klicken Sie auf Auto-Center

+0

Es funktioniert einwandfrei, es ist genau die richtige Lösung. [1] [1] [link Beschreibung hier eingeben]: http://stackoverflow.com/questions/15925319/how-to-disable-android-map-marker-click-auto-center ? answertab = active # tab-top –

Antwort

49

einen Blick auf die folgende Post Nehmen:

Don't snap to marker after click in android map v2

ein Verfahren gibt von @DMan gegeben ist, im Grunde müssen Sie die OnMarkerClick Ereignis verbrauchen und das Standardverhalten außer Kraft setzen:

// Since we are consuming the event this is necessary to 
// manage closing openned markers before openning new ones 
Marker lastOpenned = null; 

mMap.setOnMarkerClickListener(new OnMarkerClickListener() { 
public boolean onMarkerClick(Marker marker) { 
    // Check if there is an open info window 
    if (lastOpenned != null) { 
     // Close the info window 
     lastOpenned.hideInfoWindow(); 

     // Is the marker the same marker that was already open 
     if (lastOpenned.equals(marker)) { 
      // Nullify the lastOpenned object 
      lastOpenned = null; 
      // Return so that the info window isn't openned again 
      return true; 
     } 
    } 

    // Open the info window for the marker 
    marker.showInfoWindow(); 
    // Re-assign the last openned such that we can close it later 
    lastOpenned = marker; 

    // Event was handled by our code do not launch default behaviour. 
    return true; 
} 
}); 
+0

Danke das ist ideal! – FiniteRed

+0

@Emil Adz, Ich habe die gleiche Logik verwendet, aber immer noch habe ich map move onMarker Click; –

+0

@ AravinthaBashyam.c Wenn Sie am Ende wahr auf diese Methode zurückgeben, dann sollte es nicht bewegen, und warum ist die Abstimmung unten? –

23

einfache Art und Weise:

  1. Implementieren setOnMarkerClickListener()
  2. Rückgabe 'TRUE', um zu verhindern, dass GoogleMap die Kartenmitte standardmäßig auf den Marker verschiebt.

Beispiel:

map.setOnMarkerClickListener(
    new OnMarkerClickListener() { 
     boolean doNotMoveCameraToCenterMarker = true; 
     public boolean onMarkerClick(Marker marker) { 
      //Do whatever you need to do here .... 
      return doNotMoveCameraToCenterMarker; 
     } 
    }); 
+2

wow das funktioniert wie ein Zauber: D – Javier

2

sehr einfach:

Verwenden Sie den folgenden Code für die Implementierung setOnMarkerClickListener().

@Override 
public boolean onMarkerClick(Marker marker) { 

    marker.showInfoWindow(); // show info window 

    return true; // can't move map by this 
} 
Verwandte Themen