Ereignisse verarbeiten

Dieses Beispiel zeigt, wie Sie Listener für bestimmte Ereignisse auf der Karte konfigurieren und die Ereignisse verarbeiten können.

Weitere Informationen finden Sie in der Dokumentation.

Erste Schritte

Bevor Sie den Beispielcode ausprobieren können, müssen Sie Ihre Entwicklungsumgebung konfigurieren. Weitere Informationen finden Sie unter Maps SDK for Android – Beispielcode.

Code ansehen



class EventsDemoActivity : AppCompatActivity(), OnMapClickListener,
   
OnMapLongClickListener, OnCameraIdleListener, OnMapReadyCallback {

   
private lateinit var tapTextView: TextView
   
private lateinit var cameraTextView: TextView
   
private lateinit var map: GoogleMap

   
override fun onCreate(savedInstanceState: Bundle?) {
       
super.onCreate(savedInstanceState)
        setContentView
(R.layout.events_demo)
        tapTextView
= findViewById(R.id.tap_text)
        cameraTextView
= findViewById(R.id.camera_text)
        val mapFragment
= supportFragmentManager.findFragmentById(R.id.map) as SupportMapFragment?
        mapFragment
?.getMapAsync(this)
   
}

   
override fun onMapReady(googleMap: GoogleMap) {
       
// return early if the map was not initialised properly
        map
= googleMap
        map
.setOnMapClickListener(this)
        map
.setOnMapLongClickListener(this)
        map
.setOnCameraIdleListener(this)
   
}

   
override fun onMapClick(point: LatLng) {
        tapTextView
.text = "tapped, point=$point"
   
}

   
override fun onMapLongClick(point: LatLng) {
        tapTextView
.text = "long pressed, point=$point"
   
}

   
override fun onCameraIdle() {
       
if (!::map.isInitialized) return
        cameraTextView
.text = map.cameraPosition.toString()
   
}
}

     

public class EventsDemoActivity extends AppCompatActivity
       
implements OnMapClickListener, OnMapLongClickListener, OnCameraIdleListener,
       
OnMapReadyCallback {

   
private TextView tapTextView;
   
private TextView cameraTextView;
   
private GoogleMap map;

   
@Override
   
protected void onCreate(Bundle savedInstanceState) {
       
super.onCreate(savedInstanceState);
        setContentView
(R.layout.events_demo);

        tapTextView
= findViewById(R.id.tap_text);
        cameraTextView
= findViewById(R.id.camera_text);

       
SupportMapFragment mapFragment =
               
(SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
        mapFragment
.getMapAsync(this);
   
}

   
@Override
   
public void onMapReady(GoogleMap map) {
       
this.map = map;
       
this.map.setOnMapClickListener(this);
       
this.map.setOnMapLongClickListener(this);
       
this.map.setOnCameraIdleListener(this);
   
}

   
@Override
   
public void onMapClick(LatLng point) {
        tapTextView
.setText("tapped, point=" + point);
   
}

   
@Override
   
public void onMapLongClick(LatLng point) {
        tapTextView
.setText("long pressed, point=" + point);
   
}

   
@Override
   
public void onCameraIdle() {
        cameraTextView
.setText(map.getCameraPosition().toString());
   
}
}

     

Beispiele klonen und ausführen

Um dieses Beispiel lokal auszuführen, ist Git erforderlich. Mit dem folgenden Befehl wird das Repository der Beispiel-App geklont.

git clone git@github.com:googlemaps-samples/android-samples.git

Sie müssen das Beispielprojekt in Android Studio importieren:

  1. Wählen Sie in Android Studio File > New > Import Project aus.
  2. Gehen Sie zu dem Speicherort, an dem Sie das Repository gespeichert haben, und wählen Sie das Projektverzeichnis für Kotlin oder Java aus:

    • Kotlin: PATH-REPO/android-samples/ApiDemos/kotlin
    • Java: PATH-REPO/android-samples/ApiDemos/java
  3. Klicken Sie auf Öffnen. Ihr Projekt wird jetzt mit dem Build-Tool „Gradle“ in Android Studio erstellt.
  4. Erstellen Sie eine leere secrets.properties-Datei im selben Verzeichnis wie die local.properties-Datei Ihres Projekts. Weitere Informationen finden Sie unter API-Schlüssel zum Projekt hinzufügen.
  5. Fügen Sie den folgenden String in die secrets.properties-Datei ein und ersetzen Sie dabei YOUR_API_KEY mit dem Wert Ihres API-Schlüssels:

    MAPS_API_KEY=YOUR_API_KEY
  6. Starten Sie die App.