.cameraPosition.target не предоставляет центр текущего представления - PullRequest
0 голосов
/ 29 июня 2019

У меня есть местоположение, отмеченное на карте Google.У пользователя есть возможность изменить это местоположение, перетаскивая карту.Я использую положение камеры для получения нового местоположения. Вот мой код для получения исходного местоположения:

mMap = googleMap    
val addkey = intent.getStringExtra("address")
var addlocation = getLocationFromAddress(addkey) as LatLng
var mapLocation = CameraUpdateFactory.newLatLngZoom(addlocation, 18.0f)
mMap.animateCamera(mapLocation)

Код getLocationFromAddress работает нормально.

Затем пользователь перетаскивает на новоеместоположение, нажимает кнопку, когда сделано, и после подтверждения новое местоположение принимается.Я пытаюсь получить широту и долготу текущей позиции камеры, используя однострочный код:

addlocation = mMap.cameraPosition.target

Но код продолжает возвращать долготу широты старого представления.Где я не прав?

1 Ответ

0 голосов
/ 29 июня 2019

Реализуйте это так -

private GoogleMap.OnCameraIdleListener onCameraIdleListener;

, затем используйте слушатель камеры, чтобы получить долготу широты от центрального положения камеры, как это -

onCameraIdleListener = new GoogleMap.OnCameraIdleListener() {
            @Override
            public void onCameraIdle() {

                LatLng latLng = mMap.getCameraPosition().target;
                Geocoder geocoder = new Geocoder(MapsActivity.this);

                try {
                    List<Address> addressList = geocoder.getFromLocation(latLng.latitude, latLng.longitude, 1);
                    if (addressList != null && addressList.size() > 0) {
                        String locality = addressList.get(0).getAddressLine(0);
                        String country = addressList.get(0).getCountryName();
                        if (!locality.isEmpty() && !country.isEmpty())
                            resutText.setText(locality + "  " + country);
                    }

                } catch (IOException e) {
                    e.printStackTrace();
                }

            }
        };

Получение адреса является дополнительным дополнением. Используйте его, если вам это нужно.

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