Sdílet prostřednictvím


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:

  • Neprobíhá žádný přechod kamery.
  • Všechny aktuálně požadované dlaždice se načetly.
  • Všechny animace prolnutí a přechodů byly dokončeny.

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:
  • 1: Gesto
  • 2: Animace pro vývojáře
  • 3: Animace rozhraní API
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, OnFeatureClicka 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: