https://docs.mapbox.com/help/tutorials/android-location-listening/ показывает, как отслеживать местоположение устройства.
Если это слишком сложно или вам не нужно постоянно отслеживать местоположение, вы можете сделать Location lastKnownLocation = mapboxMap.getLocationComponent().getLastKnownLocation();
один раз * Установлено 1007 * (https://docs.mapbox.com/android/maps/examples/show-a-users-location/).
Location lastKnownLocation = mapboxMap.getLocationComponent().getLastKnownLocation();
lastKnownLocation.getLatitude();
lastKnownLocation.getLongitude();
Теперь, когда у вас есть координаты, вы можете добавить SymbolLayer
или добавить новые координаты к существующему SymbolLayer
Geo JSON.
https://docs.mapbox.com/android/maps/examples/marker-symbol-layer/
Как обновить SymbolLayer
Geo JSON, чтобы появился новый маркер:
map.getStyle(new Style.OnStyleLoaded() {
@Override
public void onStyleLoaded(@NonNull Style style) {
featureList.add(Feature.fromGeometry(Point.fromLngLat(lastKnownLocation.getLongitude(), lastKnownLocation.getLatitude())));
FeatureCollection newFeatureCollection = FeatureCollection.fromFeatures(featureList);
GeoJsonSource source = style.getSourceAs("symbol-layer-source-id");
if (source != null) {
source.setGeoJson(newFeatureCollection);
}
}
});