Определение местоположения по клику на кнопку. Yandex MapKit Android

После загрузки активити с картой, необходимо один раз определить местоположение пользователя и больше его не обновлять. Также будет кнопка, по нажатию на которую местоположение должно обновляться (так же один раз). На данный момент реализовано постоянно определение и обновление местоположения после загрузки активити с картой:

public class MapMes extends AppCompatActivity implements UserLocationObjectListener, UserLocationTapListener {

    private final Point TARGET_LOCATION = new Point(54.513124, 36.259639);
    private MapView mapView;
    private UserLocationLayer userLocationLayer;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    String MAPKIT_API_KEY = "ключ";
    MapKitFactory.setApiKey(MAPKIT_API_KEY);
    MapKitFactory.initialize(this);
    setContentView(R.layout.map_mes);
    mapView = (MapView) findViewById(R.id.mapview);
    mapView.getMap().move(
            new CameraPosition(TARGET_LOCATION, 15.0f, 0.0f, 0.0f),
            new Animation(Animation.Type.SMOOTH, 0),
            null);
    MapKit mapKit = MapKitFactory.getInstance();
    userLocationLayer = mapKit.createUserLocationLayer(mapView.getMapWindow());
    userLocationLayer.setVisible(true);
    userLocationLayer.setHeadingEnabled(true);
    userLocationLayer.setObjectListener(this);
}

@Override
protected void onStop() {
    super.onStop();
    mapView.onStop();
    MapKitFactory.getInstance().onStop();
}

@Override
protected void onStart() {
    super.onStart();
    mapView.onStart();
    MapKitFactory.getInstance().onStart();
}

@Override
public void onObjectAdded(UserLocationView userLocationView) {
    userLocationLayer.setAnchor(
            new PointF((float)(mapView.getWidth() * 0.5), (float)(mapView.getHeight() * 0.5)),
            new PointF((float)(mapView.getWidth() * 0.5), (float)(mapView.getHeight() * 0.83)));

    userLocationView.getArrow().setIcon(ImageProvider.fromResource(
            this, R.drawable.my_geo_icon));

    userLocationView.getAccuracyCircle().setFillColor(Color.TRANSPARENT);
}

@Override
public void onObjectRemoved(UserLocationView view) {
}

@Override
public void onObjectUpdated(UserLocationView view, ObjectEvent event) {
}

@Override
public void onUserLocationObjectTap(@NonNull Point point){

}

}

Подскажите, как доработать, чтобы реализовать тот функционал, который мне нужен.


Ответы (0 шт):