Megosztás a következőn keresztül:


A térkép használata (Android SDK)

Ez a cikk bemutatja, hogyan használhatja a térképek eseménykezelőjét.

Feljegyzés

Az Azure Térképek Android SDK kivonása

Az Androidhoz készült Azure Térképek Natív SDK elavult, és 25.31-én megszűnik. A szolgáltatáskimaradások elkerülése érdekében 25.31-ig migráljon az Azure Térképek Web SDK-ba. További információ: Az Azure Térképek Android SDK migrálási útmutatója.

A térképpel való interakció

A térkép az összes eseményt a tulajdonságán events keresztül kezeli. Az alábbi táblázat a támogatott leképezési eseményeket sorolja fel.

Esemény Eseménykezelő formátuma Leírás
OnCameraIdle ()

Az utolsó képkocka után aktiválódik, mielőtt a térkép "tétlen" állapotba kerül:

  • Nincs folyamatban kameraáttűnés.
  • Az összes jelenleg kért csempe be van töltve.
  • Az összes elhalványulási/áttűnési animáció befejeződött.

OnCameraMove () Ismétlődően aktiválódik egy animált áttűnés során az egyik nézetről a másikra a felhasználói interakció vagy a metódusok eredményeként.
OnCameraMoveCanceled () Akkor aktiválódik, ha a kamerára irányuló áthelyezési kérelmet törölték.
OnCameraMoveStarted (int reason) A térkép előtt aktiválódik egy váltás egyik nézetről a másikra a felhasználói interakció vagy a metódusok eredményeként. Az reason eseményfigyelő argumentuma egy egész számot ad vissza, amely részletesen ismerteti a kamera mozgásának kezdeményezését. Az alábbi lista a lehetséges okokat ismerteti:
  • 1: Kézmozdulat
  • 2: Fejlesztői animáció
  • 3: API-animáció
OnClick (double lat, double lon): boolean Akkor aktiválódik, amikor a térképet lenyomják, és a térkép ugyanazon pontján jelenik meg. Ez az eseménykezelő egy logikai értéket ad vissza, amely jelzi, hogy az eseményt fel kell-e használni, vagy tovább kell-e adni más eseményfigyelőknek.
OnFeatureClick (List<Feature>): boolean Akkor aktiválódik, amikor a térképet lenyomja és egy funkció ugyanazon pontján bocsátja ki. Ez az eseménykezelő egy logikai értéket ad vissza, amely jelzi, hogy az eseményt fel kell-e használni, vagy tovább kell-e adni más eseményfigyelőknek.
OnLayerAdded (Layer layer) Akkor aktiválódik, ha egy réteg hozzáadódik a térképhez.
OnLayerRemoved (Layer layer) Akkor aktiválódik, ha a rendszer eltávolít egy réteget a térképről.
OnLoaded () Azonnal aktiválódik az összes szükséges erőforrás letöltése és a térkép első vizuálisan teljes renderelése.
OnLongClick (double lat, double lon): boolean A térkép lenyomásakor, egy pillanatra megtartva, majd a térkép ugyanazon pontján jelenik meg. Ez az eseménykezelő egy logikai értéket ad vissza, amely jelzi, hogy az eseményt fel kell-e használni, vagy tovább kell-e adni más eseményfigyelőknek.
OnLongFeatureClick (List<Feature>): boolean A térkép lenyomásakor, egy pillanatra megtartva, majd a funkció ugyanazon pontján jelenik meg. Ez az eseménykezelő egy logikai értéket ad vissza, amely jelzi, hogy az eseményt fel kell-e használni, vagy tovább kell-e adni más eseményfigyelőknek.
 OnReady                (AzureMap map)       A térkép kezdeti betöltésekor a tájolás megváltozik, a minimálisan szükséges térképerőforrások betöltődnek, és a térkép programozott módon használható. 
OnSourceAdded (Source source) Aktiválódik, ha a térképhez hozzáad egy DataSource vagy VectorTileSource több elemet.
OnSourceRemoved (Source source) A térképről DataSource eltávolított vagy VectorTileSource eltávolított elemek aktiválódik.
OnStyleChange () A térkép stílusának betöltésekor vagy módosításakor aktiválódik.

Az alábbi kód bemutatja, hogyan adhatja hozzá a OnClick, OnFeatureClickés OnCameraMove eseményeket a térképhez.

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

További információkért tekintse meg a térkép dokumentációjának navigálását a térkép és az eseményindító eseményeinek használatáról.

Hatókör-funkcióesemények rétegre

Amikor a rendszer hozzáadja az OnFeatureClickOnLongFeatureClick eseményeket a térképhez, egy rétegpéldány vagy rétegazonosító átadható második paraméterként. Amikor egy réteg átkerül, egy esemény aktiválódik, ha az ezen a rétegen történik. A rétegekre kiterjedő eseményeket a szimbólumok, buborékok, vonal- és sokszögrétegek támogatják.

//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
)

Következő lépések

A teljes kódra vonatkozó példákért tekintse meg az alábbi cikkeket: