Gérer les événements

Cet exemple montre comment écouter et gérer certains événements sur une carte.

Pour en savoir plus, reportez-vous à la documentation.

Premiers pas

Avant d'essayer l'exemple de code, vous devez configurer votre environnement de développement. Pour en savoir plus, consultez Exemples de code du SDK Maps pour Android.

Voir le code

Kotlin



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()
    }
}

      

Java


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());
    }
}

      

Cloner et exécuter les exemples

Git est requis pour exécuter cet exemple en local. La commande suivante clone le dépôt de l'application exemple.

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

Importez le projet exemple dans Android Studio :

  1. Dans Android Studio, sélectionnez File > New > Import Project (Fichier > Nouveau > Importer un projet).
  2. Accédez à l'emplacement où vous avez enregistré le dépôt et sélectionnez le répertoire du projet pour Kotlin ou Java :

    • Kotlin : PATH-REPO/android-samples/ApiDemos/kotlin
    • Java : PATH-REPO/android-samples/ApiDemos/java
  3. Sélectionnez Ouvrir. Android Studio crée votre projet à l'aide de l'outil de compilation Gradle.
  4. Créez un fichier secrets.properties vide dans le même répertoire que le fichier local.properties de votre projet. Pour en savoir plus, consultez Ajouter votre clé API au projet.
  5. Ajoutez la chaîne suivante à secrets.properties en remplaçant YOUR_API_KEY par la valeur de votre clé API :

    MAPS_API_KEY=YOUR_API_KEY
  6. Exécutez l'application.