2013-07-26 2 views

Antwort

4

Dies ist in der Tat eine "Begrenzung" von Markern als 3.1.59 Version der Bibliothek.

Wenn Sie sie wirklich als Marker benötigen, senden Sie eine Feature-Anfrage an gmaps-api-issues für MarkerOptions.clickable und Marker.setClickable.

Wenn Sie können, sollten Sie andere visuelle Objekte, z. GroundOverlay. Das einzige Problem ist, dass sie alle im Gegensatz zu Markern mit Karten skalieren. Am nächsten wäre Circle mit Nullradius und 20-50 dp Strichbreite, aber das ist nur ein einzelner Farbpunkt.

4

Gemäß der docs über Marker, wenn Sie Ihren eigenen Listener hinzufügen und die onMarkerClick() -Methode false zurückgibt, wird das Standardverhalten ausgeführt.

Also, in der onMarkerClick() nur true zurück und nichts anderes tun, um den Standard vollständig zu überschreiben.

+0

Meine versucht 'onMarkerClick (Marker arg0) {return true;}' aber 'onMapClick' wird immer noch nicht aufgerufen. Ich denke, Docs Erklärung bedeutet, dass, wenn ich 'true' zurückgebe, kein Standardverhalten auftritt (infoWindow), nur mein Code, den ich in' onMarkerClick' poste. –

+0

Versuch es: in onMarkerClick die Zeile 'onMapClick (marker.getPosition()) hinzufügen ; ' –

+1

Ich dachte darüber nach. In diesem Fall wäre ein großer Fehler. Ich werde dies tun, wenn keine andere Lösung gefunden würde –

4

Die einzige Abhilfe, die ich für dieses Problem gefunden ist, den gleichen Code in OnMarkerClickListener, die Sie in OnMapClickListener und zurück false haben auszuführen:

getMap().setOnMarkerClickListener(new OnMarkerClickListener() { 

    public boolean onMarkerClick(Marker marker) { 
     onMapClick(marker.getPosition()); 
     return true; 
    } 
}); 
+1

Diese Lösung funktioniert nicht, da onMarkerClick den Speicherort der Markierung angibt, die am nächsten an der Stelle, an die Sie geklickt haben, und nicht dort, wo Sie tatsächlich geklickt haben. – Justin

Verwandte Themen