Interagieren mit der Karte (Android SDK)
In diesem Artikel erfahren Sie, wie Sie den Kartenereignis-Manager verwenden.
Hinweis
Einstellung des Azure Maps Android SDK
Das Azure Maps Native SDK für Android ist jetzt veraltet und wird am 3.31.25 eingestellt. Um Dienstunterbrechungen zu vermeiden, migrieren Sie bis zum 31.03.2025 zum Azure Maps Web SDK. Weitere Informationen finden Sie im Azure Maps Android SDK-Migrationshandbuch.
Interaktion mit der Karte
Die Karte verwaltet alle Ereignisse über ihre events
-Eigenschaft. In der folgenden Tabelle sind die unterstützten Kartenereignisse aufgelistet.
Ereignis | Ereignishandlerformat | BESCHREIBUNG |
---|---|---|
OnCameraIdle |
() |
Wird ausgelöst, nachdem der letzte Frame gerendert wurde und bevor die Karte in den Zustand „Leerlauf“ versetzt wird:
|
OnCameraMove |
() |
Wird während eines animierten Übergangs von einer Ansicht zu einer anderen wiederholt ausgelöst, entweder als Ergebnis einer Benutzerinteraktion oder von Methoden. |
OnCameraMoveCanceled |
() |
Wird ausgelöst, wenn eine Anforderung zum Bewegen der Kamera abgebrochen wurde. |
OnCameraMoveStarted |
(int reason) |
Wird ausgelöst, kurz bevor die Karte den Übergang von einer Ansicht zu einer anderen beginnt, entweder als Ergebnis einer Benutzerinteraktion oder von Methoden. Das Argument reason des Ereignislistener gibt einen ganzzahligen Wert zurück, der Aufschluss darüber gibt, wie die Kamerabewegung initiiert wurde. Im Folgenden finden Sie eine Liste möglicher Gründe:
|
OnClick |
(double lat, double lon): boolean |
Wird ausgelöst, wenn die Karte an derselben Stelle gedrückt und wieder losgelassen wird. Dieser Ereignishandler gibt einen booleschen Wert zurück, der angibt, ob das Ereignis verarbeitet oder an andere Ereignislistener weitergeleitet werden soll. |
OnFeatureClick |
(List<Feature>): boolean |
Wird ausgelöst, wenn die Karte an derselben Stelle eines Features gedrückt und wieder losgelassen wird. Dieser Ereignishandler gibt einen booleschen Wert zurück, der angibt, ob das Ereignis verarbeitet oder an andere Ereignislistener weitergeleitet werden soll. |
OnLayerAdded |
(Layer layer) |
Wird ausgelöst, wenn der Karte eine Ebene hinzugefügt wird. |
OnLayerRemoved |
(Layer layer) |
Wird ausgelöst, wenn aus der Karte eine Ebene entfernt wird. |
OnLoaded |
() |
Wird sofort ausgelöst, nachdem alle erforderlichen Ressourcen heruntergeladen wurden und die Karte zum ersten Mal visuell vollständig gerendert wurde. |
OnLongClick |
(double lat, double lon): boolean |
Wird ausgelöst, wenn die Karte gedrückt wird, für einen Moment gehalten und dann an derselben Stelle auf der Karte wieder losgelassen wird. Dieser Ereignishandler gibt einen booleschen Wert zurück, der angibt, ob das Ereignis verarbeitet oder an andere Ereignislistener weitergeleitet werden soll. |
OnLongFeatureClick |
(List<Feature>): boolean |
Wird ausgelöst, wenn die Karte gedrückt wird, für einen Moment gehalten und dann an derselben Stelle auf der Karte wieder losgelassen wird. Dieser Ereignishandler gibt einen booleschen Wert zurück, der angibt, ob das Ereignis verarbeitet oder an andere Ereignislistener weitergeleitet werden soll. |
OnReady |
(AzureMap map) |
Wird ausgelöst, wenn die Karte zum ersten Mal geladen wird, sich die Ausrichtung ändert, die mindestens erforderliche Zuordnungsressourcen geladen werden und die Karte bereit für die programmgesteuerte Interaktion ist. |
OnSourceAdded |
(Source source) |
Wird ausgelöst, wenn der Karte DataSource oder VectorTileSource hinzugefügt wird. |
OnSourceRemoved |
(Source source) |
Wird ausgelöst, wenn aus der Karte DataSource oder VectorTileSource entfernt wird. |
OnStyleChange |
() |
Wird ausgelöst, wenn der Kartenstil geladen oder geändert wird. |
Der folgende Code zeigt, wie die OnClick
-, OnFeatureClick
- und OnCameraMove
-Ereignisse der Karte hinzugefügt werden.
map.events.add((OnClick) (lat, lon) -> {
//Map clicked.
//Return true indicating if event should be consumed and not passed further to other listeners registered afterwards, false otherwise.
return true;
});
map.events.add((OnFeatureClick) (features) -> {
//Feature clicked.
//Return true indicating if event should be consumed and not passed further to other listeners registered afterwards, false otherwise.
return true;
});
map.events.add((OnCameraMove) () -> {
//Map camera moved.
});
map.events.add(OnClick { lat: Double, lon: Double ->
//Map clicked.
//Return true indicating if event should be consumed and not passed further to other listeners registered afterwards, false otherwise.
return false
})
map.events.add(OnFeatureClick { features: List<Feature?>? ->
//Feature clicked.
//Return true indicating if event should be consumed and not passed further to other listeners registered afterwards, false otherwise.
return false
})
map.events.add(OnCameraMove {
//Map camera moved.
})
Weitere Informationen zur Interaktion mit den Karten- und Auslöserereignissen finden Sie in der Dokumentation Navigieren auf einer Karte.
Beschränken von Featureereignissen auf eine Ebene
Wenn die Ereignisse OnFeatureClick
oder OnLongFeatureClick
der Karte hinzugefügt werden, kann eine Ebeneninstanz oder Ebenen-ID als zweiter Parameter übergeben werden. Wenn eine Ebene übergeben wird, wird ein Ereignis ausgelöst, wenn es auf dieser Ebene auftritt. Auf Ebenen bezogene Ereignisse werden von Symbol-, Blasen-, Linien- und Polygonebenen unterstützt.
//Create a data source.
DataSource source = new DataSource();
map.sources.add(source);
//Add data to the data source.
source.add(Point.fromLngLat(0, 0));
//Create a layer and add it to the map.
BubbleLayer layer = new BubbleLayer(source);
map.layers.add(layer);
//Add a feature click event to the map and pass the layer ID to limit the event to the specified layer.
map.events.add((OnFeatureClick) (features) -> {
//One or more features clicked.
//Return true indicating if event should be consumed and not passed further to other listeners registered afterwards, false otherwise.
return true;
}, layer);
//Add a long feature click event to the map and pass the layer ID to limit the event to the specified layer.
map.events.add((OnLongFeatureClick) (features) -> {
//One or more features long clicked.
//Return true indicating if event should be consumed and not passed further to other listeners registered afterwards, false otherwise.
return true;
}, layer);
//Create a data source.
val source = DataSource()
map.sources.add(source)
//Add data to the data source.
source.add(Point.fromLngLat(0, 0))
//Create a layer and add it to the map.
val layer = BubbleLayer(source)
map.layers.add(layer)
//Add a feature click event to the map and pass the layer ID to limit the event to the specified layer.
map.events.add(
OnFeatureClick { features: List<Feature?>? ->
//One or more features clicked.
//Return true indicating if event should be consumed and not passed further to other listeners registered afterwards, false otherwise.
return false
},
layer
)
//Add a long feature click event to the map and pass the layer ID to limit the event to the specified layer.
map.events.add(
OnLongFeatureClick { features: List<Feature?>? ->
//One or more features long clicked.
//Return true indicating if event should be consumed and not passed further to other listeners registered afterwards, false otherwise.
return false
},
layer
)
Nächste Schritte
Die folgenden Artikel enthalten vollständige Codebeispiele: