2016-03-29 4 views
1

Ich kann diesen Moment fangen durch einen Zuhörer mit:Wie löst man einen Moment animateCamera Zoom Ende 'nur'?

map.animateCamera(CameraUpdateFactory.newLatLngZoom(destLatLng, 15)); 

map.setOnCameraChangeListener(new GoogleMap.OnCameraChangeListener() { 
       @Override 
       public void onCameraChange(CameraPosition cameraPosition) { 
        //here some code... 
       } 
      }); 

Das Problem ist, diese Methode alle Momente der Benutzer-Map berühren auslösen, und ich will es nicht.

Ich möchte nur den Moment auslösen, nachdem Karte Zoom Animation gegen Ende und die Animation stoppt. Nebenbei, wo Sie die Karte berühren, erzeugt die Karte normalerweise keine Animation.

Also, auch ich könnte sagen, jede Situation, wo Map beginnt einige Zoom-Animation und beendet es, ich will einen Listener. Aber nur dort!

(ich könnte etwas Flagge an jedem Benutzer Berührungsereignis setzen und in onCameraChange einige Wert überprüfen, aber ... ist es eine normale Lösung?)

Antwort

0

Sie es durch benutzerdefinierte Steuerelemente implementieren können. Erstellen Sie eigene Steuerelemente für die Interaktion mit dem Benutzer. Zeigt dem Benutzer eine Benutzeroberfläche an und behandelt die Interaktion mit dem Benutzer oder der Karte normalerweise über einen Ereignishandler. Google Maps Javascript API bietet eine Cross-Browser-Ereignisbehandlungsmethode 'addDomListener()' , die meisten der Browser unterstützt unterstützt DOM events.

Sie geben eine control's Präsentation an, wenn Sie Ihre Map über Felder im MapOptions-Objekt der Map erstellen.

+0

nur Javascript-Methode? Ich brauche Java (ich habe einen Fehler gemacht, indem ich das "jquery-animate" -Tag gesetzt habe, es wurde entfernt). –