Android - Google Maps - плавно перетащите маркер - PullRequest
0 голосов
/ 01 апреля 2019

Я пытаюсь создать «Выбор позиции» на карте (например, в приложении Google maps при выборе начальной точки для направлений).

Обычно я помещаю маркер в центр карты, затем меняю его положение при перемещении камеры. Проблема в том, что маркер не движется плавно (он заикается). Я пробовал некоторые решения для stackoverflow, но ни одно из них не работает.

Мой код такой:

    getGoogleMap().moveCamera(CameraUpdateFactory.newLatLngZoom(
            new LatLng(location.getLatitude(),
                    location.getLongitude()), 14));
    LatLng target = getGoogleMap().getCameraPosition().target;

    chooseMarker = getGoogleMap().addMarker(new MarkerOptions()
            .position(target));
    getGoogleMap().setOnCameraMoveListener(new GoogleMap.OnCameraMoveListener() {
        @Override
        public void onCameraMove() {
            // Get the center of the Map.
            LatLng centerOfMap = getGoogleMap().getCameraPosition().target;

            // Update your Marker's position to the center of the Map.
            chooseMarker.setPosition(centerOfMap);


        }
    });

1 Ответ

1 голос
/ 01 апреля 2019

Если я правильно понял вашу проблему, вы хотите, чтобы пользователь выбрал местоположение, используя маркер, который следует за положением камеры. Кроме того, вы хотите, чтобы маркер постоянно находился в центре карты Google. В этом случае вы можете использовать простой трюк. Добавьте вид сверху макета, содержащий карту Google, и сделайте его невидимым (назначьте соответствующий значок из ресурса проекта). Всякий раз, когда пользователь хочет выбрать местоположение, сделайте его видимым (оно должно быть расположено в центре макета вашей карты Google). Так как у нас есть доступ к центру карты, как только пользователь удовлетворит местоположение, и отправим следующее действие, мы можем двигаться вперед с расположением центра карты. В конце процесса сделайте маркер невидимым.

Хотя существуют и другие решения, это может быть очень просто и эффективно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...