2013-04-10 10 views
27

Szukam sposobu na wyłączenie automatycznego centrum fragmentu mapy na wybranej funkcji znacznika. Nadal chcę wyświetlać markery InfoWindow, ale po prostu nie centruj całej mapy na zaznaczonym markerze.Jak wyłączyć znacznik mapy Android Kliknij auto-centrum

+0

Działa poprawnie, jest to właściwe rozwiązanie. [enter Opis Link tutaj] [1] [1]: http://stackoverflow.com/questions/15925319/how-to-disable-android-map-marker-click-auto-center ? answerertab = aktywny # tab-top –

Odpowiedz

49

Spójrz na następujące stanowisko:

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

Istnieje metoda podana tam @DMan, w zasadzie należy spożywać zdarzenie OnMarkerClick i zastąpić domyślne zachowanie:

// 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

Dzięki, że jest idealny! – FiniteRed

+0

@Emil Adz, użyłem tej samej logiki, ale wciąż mam ruch mapy naMarker Click; –

+0

@ AravinthaBashyam.c jeśli powrócisz na zakończenie na tej metodzie, to nie powinno się ruszać i dlaczego głosowanie jest niższe? –

23

Prosty sposób:

  1. Implement setOnMarkerClickListener()
  2. Powrót "TRUE", aby zapobiec GoogleMap domyślnie przenosi centrum mapy do znacznika.

przykład:

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

Wow działa jak urok: D – Javier

2

bardzo proste:

użycia poniżej kodu dla wdrożenia setOnMarkerClickListener().

Powiązane problemy