2013-07-16 10 views
11

Ho diversi indicatori visualizzati sulla mia mappa che sono vicini l'uno all'altro o addirittura uno sopra l'altro. Ho bisogno di avere un indicatore specifico sempre in cima. Non importa se aggiungo il marker alla mappa prima o dopo, spesso finisce per essere posizionato dietro alcuni marker. Per qualche misterioso motivo, Google Maps lo stabilisce. Deve funzionare con Google Maps per Android V2.Modifica z-index (ordine z) dell'indicatore della mappa per Maps V2 in Android

risposta

2

Sfortunatamente, Markers in Google Maps API V2 per Android non ha z-indici. Essi gestire il proprio ordine di disegno

+1

2016 e questo non è più vero .. zindex – amalBit

+0

la sua non è vero oggi –

5

trovato una soluzione:

Marker.showInfoWindow();

Questo non è ottimale perché fa apparire la finestra delle informazioni sopra l'indicatore ma è meglio di niente.

+0

È possibile effettuare InfoWindowAdapter ritorno 0 da 0 pixel Visualizza in questo caso. –

+3

Inutile che Google non ha implementato questo. Ne ho bisogno per la mia app, e non riesco a capire perché lo sviluppatore non dovrebbe essere in grado di controllarlo. Questa soluzione è meglio di niente, ma si sente davvero hacky e non abbastanza versatile per la mia app. –

+0

sì funziona, ma solo fino a quando non abbiamo cliccato sulla mappa. Ho un numero di marcatori, tutti hanno una propria finestra informativa, ma sto usando showinfowindow() per quel marcatore che voglio mostrare in alto, mentre clicco sulla mappa, la finestra informativa nasconde e il marcatore si nasconde. –

0

Credo che questo post sia un duplicato di Google Maps v2 Marker zOrdering - Set to top. La risposta di Bastien Beurier utilizza la soluzione Marker.showInfoWindow() e mostra anche come creare una finestra a 0 0 0 se non si desidera effettivamente che venga visualizzata la finestra dell'infinito.

Nota anche il mio commento sotto la risposta sull'aggiunta di una TextView a LinearLayout.

14

La versione 27 giugno 2016, v9.2.0, di Android Maps API v2 ora supporta uno z-index - vedere l'annuncio allo https://developers.google.com/maps/documentation/android-api/releases#june_27_2016.

permette ai mappe/versione servizi di riproduzione è impostata v9.2.0 o superiore in build.gradle:

compile 'com.google.android.gms:play-services-maps:9.2.0' 

La documentazione z-index è inferiore (da https://developers.google.com/maps/documentation/android-api/marker#marker_z-index):

Il z-index specifica l'ordine di stack di questo indicatore, relativo ad altri indicatori sulla mappa. Un marcatore con un alto indice z è disegnato in cima a marcatori con indici z inferiori. Il valore z-index predefinito è 0.

I marker vengono sempre disegnati sopra i layer di tile e altri overlay non marker (overlay a terra, polilinee, poligoni e altre forme) indipendentemente dall'indice z degli altri overlay. I marker sono effettivamente considerati in un gruppo z-index separato rispetto ad altri overlay.

È possibile impostare l'indice quando si aggiunge l'indicatore sulla mappa:

map.addMarker(new MarkerOptions() 
    .position(new LatLng(10, 10)) 
    .title("Marker z1") 
    .zIndex(1.0f)); 

... o utilizzando Marker.setZIndex() dopo la creazione del marcatore.

Maggiori documentazione sugli effetti della z-index su eventi click è al di sotto (da https://developers.google.com/maps/documentation/android-api/marker#marker_click_events):

  • Quando un utente fa clic su un cluster di marcatori, l'evento click viene attivato per il marcatore con lo z-index più alto.
  • Al massimo un evento viene attivato per clic. In altre parole, il clic non viene passato ai marcatori o ad altre sovrapposizioni con valori di z-index più bassi.
  • Fare clic su un gruppo di marker fa sì che i clic successivi ciclichino attraverso il cluster, selezionando ciascuno a turno.L'ordine del ciclo dà la priorità allo z-index, quindi alla vicinanza al punto di click.
  • Se l'utente fa clic fuori dalla prossimità del cluster, l'API ricalcola il cluster e reimposta lo stato del ciclo di clic in modo che inizi dall'inizio.
  • L'evento click cade attraverso i cluster di indicatori in altre forme e sovrapposizioni prima di riavviare il ciclo.
  • I marker vengono effettivamente considerati in un gruppo z-index separato rispetto ad altri overlay o forme (polilinee, poligoni, cerchi e/o sovrapposizioni di terra), indipendentemente dall'indice z degli altri overlay. Se più marcatori, sovrapposizioni o forme sono sovrapposti l'uno sull'altro, l'evento click viene prima ciclizzato attraverso il gruppo di marcatori, quindi attivato per altre sovrapposizioni o forme cliccabili, in base ai loro valori z-index.
+0

Grazie mi hai salvato –

Problemi correlati