Interakce s mapou (Android SDK)
V tomto článku se dozvíte, jak používat správce událostí map.
Poznámka:
Vyřazení sady Azure Maps Android SDK z provozu
Nativní sada SDK služby Azure Maps pro Android je teď zastaralá a bude vyřazena 31. 31. 25. Pokud se chcete vyhnout přerušení služeb, proveďte migraci do webové sady SDK služby Azure Maps do 31. 31. 25. Další informace najdete v průvodci migrací sady Azure Maps Android SDK.
Interakce s mapou
Mapa spravuje všechny události prostřednictvím své events
vlastnosti. Následující tabulka obsahuje seznam podporovaných událostí mapování.
Událost | Formát obslužné rutiny události | Popis |
---|---|---|
OnCameraIdle |
() |
Aktivuje se po posledním snímku vykresleném před tím, než mapa přejde do stavu nečinnosti:
|
OnCameraMove |
() |
Aktivuje se opakovaně během animovaného přechodu z jednoho zobrazení do druhého v důsledku interakce uživatele nebo metod. |
OnCameraMoveCanceled |
() |
Aktivuje se, když byla zrušena žádost o pohyb do kamery. |
OnCameraMoveStarted |
(int reason) |
Aktivuje se těsně před tím, než mapa začne přechod z jednoho zobrazení do druhého, jako výsledek interakce uživatele nebo metod. Argument reason naslouchacího procesu události vrátí celočíselnou hodnotu, která poskytuje podrobnosti o inicializování pohybu kamery. Následující seznam popisuje možné důvody:
|
OnClick |
(double lat, double lon): boolean |
Aktivuje se při stisknutí a uvolnění mapy ve stejném bodě na mapě. Tato obslužná rutina události vrátí logickou hodnotu označující, jestli má být událost spotřebována nebo předána dál jiným naslouchacím procesům událostí. |
OnFeatureClick |
(List<Feature>): boolean |
Aktivuje se, když se mapa stiskne a uvolní ve stejném bodě funkce. Tato obslužná rutina události vrátí logickou hodnotu označující, jestli má být událost spotřebována nebo předána dál jiným naslouchacím procesům událostí. |
OnLayerAdded |
(Layer layer) |
Aktivuje se při přidání vrstvy do mapy. |
OnLayerRemoved |
(Layer layer) |
Aktivuje se při odebrání vrstvy z mapy. |
OnLoaded |
() |
Aktivuje se okamžitě po stažení všech potřebných prostředků a první vizuálně kompletní vykreslení mapy došlo. |
OnLongClick |
(double lat, double lon): boolean |
Aktivuje se, když se mapa stiskne, drží se na chvíli a pak se uvolní na stejném místě na mapě. Tato obslužná rutina události vrátí logickou hodnotu označující, jestli má být událost spotřebována nebo předána dál jiným naslouchacím procesům událostí. |
OnLongFeatureClick |
(List<Feature>): boolean |
Aktivuje se, když se mapa stiskne, drží se na chvíli a pak se uvolní ve stejném okamžiku na funkci. Tato obslužná rutina události vrátí logickou hodnotu označující, jestli má být událost spotřebována nebo předána dál jiným naslouchacím procesům událostí. |
OnReady |
(AzureMap map) |
Aktivuje se, když se mapa zpočátku načte, změní se orientace, minimální požadované načtení mapových prostředků a mapa je připravená k interakci s programem. |
OnSourceAdded |
(Source source) |
Aktivuje se při DataSource přidání nebo VectorTileSource přidání do mapy. |
OnSourceRemoved |
(Source source) |
Aktivuje se při DataSource odebrání nebo VectorTileSource odebrání z mapy. |
OnStyleChange |
() |
Aktivuje se, když se styl mapy načte nebo změní. |
Následující kód ukazuje, jak přidat OnClick
, OnFeatureClick
a OnCameraMove
události do mapy.
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.
})
Další informace najdete v dokumentaci k mapě o interakci s událostmi mapy a triggeru.
Rozsah událostí funkcí na vrstvu
OnFeatureClick
Při přidání událostí OnLongFeatureClick
do mapy lze instanci vrstvy nebo ID vrstvy předat jako druhý parametr. Když je vrstva předána, událost se aktivuje, pokud k ní dojde. Události vymezené na vrstvy jsou podporovány pomocí symbolu, bubliny, čáry a mnohoúhelníku.
//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
)
Další kroky
Úplné příklady kódu najdete v následujících článcích: