8

ich eine Karte basierte Anwendung erschaffe, wo ich Pings zeigen basierend auf einer Breite/Länge ServiceBringen Google Map Markers Herum durch Ändern der Z-Index in Android

mMap.addMarker(new MarkerOptions() 
    .position(mLatLng) 
    .title("" + name) 
    .snippet("" + pingDate) 
    .icon(BitmapDescriptorFactory.fromBitmap(icon))); 

Laut google map v2 api, Marker gezeichnet in einem von oben nach unten gerichteten Ansatz, so dass meine Pings verborgen werden, wenn sie vollständig/teilweise übereinander liegen.

Meine Frage ist, kann ich die Z-Reihenfolge-Achse oder irgendetwas ändern, mit dem ich die z-Position eines Markers ändern kann?

Derart, dass, wenn ich zwei Arten von Pings habe, ich eine Art von Ping zeigen will immer oben unabhängig von ihren Koordinaten

Antwort

3

In neuesten Version google map jetzt die Kontrolle über zIndex in Android haben. https://developers.google.com/maps/documentation/android-api/releases#june_27_2016

du jetzt verwenden können:

mMap.addMarker(new MarkerOptions() 
    .position(mLatLng) 
    .title("" + name) 
    .snippet("" + pingDate) 
    .icon(BitmapDescriptorFactory.fromBitmap(icon)) 
    .zIndex(yourZIndex)); 
+0

was ist * yourZIndex *? – NarendraJi

+0

@King yourZIndex ist eine Ganzzahl, die zum Festlegen des zIndex für den Marker verwendet wird. – Math10

14

Versuchen @ Simo Antwort, aber es scheint nicht auf meinem Handy zu arbeiten (vielleicht mit Lollipop geändert?) - Wenn showInfoWindow() sieht, dass nichts angezeigt wird, scheint es, den Pin nach vorne zu bringen. Ich war in der Lage, dies zu beheben, indem Sie das folgende Layout mit:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:orientation="vertical" 
       android:layout_width="0dp" 
       android:layout_height="0dp" > 

    <!-- Need a " " so that showing this isn't a no-op --> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text=" "/> 
</LinearLayout> 
+0

Danke, wurde die zusätzliche Textview, die für mich die z-Indizierung aktualisiert werden zu lassen. Ich bin immer noch nervös, dass das in zukünftigen Bibliotheksupdates brechen könnte, aber ich muss noch eine unterstützte Lösung finden, um das Informationsfenster zu verstecken ... – ssawchenko

-1

wenn Sie wollen, nur um es von allen anderen Markierungen an der Spitze bringen

rufen Sie einfach an:

marker.showInfoWindow(); 
+0

Es funktioniert nicht .... – Radu

1

Ich glaube, dass Dieser Beitrag ist ein Duplikat von Google Maps v2 Marker zOrdering - Set to top. Bastien Beuriers Antwort verwendet die Marker.showInfoWindow() -Lösung, um den Marker nach oben zu verschieben. Es hat auch mehr Details darüber, wie das Infofenster 0x0 erstellt wird, wenn das Infowindow nicht angezeigt werden soll (obwohl, wie ich in einem Kommentar zu dieser Antwort bemerkt habe, das Layout auch ein TextView mit einem Leerzeichen wie @ jt-gilkeson benötigt gezeigt in diesem Post).

Wenn Sie wollen, dass der Marker immer oben bleiben, dann können Sie diese Lösung mit dem einen kombinieren für Android Google Maps v2 permanent Marker InfoWindow