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:
|
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:
|
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 OnFeatureClick
OnLongFeatureClick
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: