yandexmobile / yandexmapkit-android

Yandex Map Kit for Android
160 stars 65 forks source link

UserLocationObjectListener: некорректные координаты в onObjectAdded #322

Open sham0688 opened 3 years ago

sham0688 commented 3 years ago

В onObjectAdded приходит geometry с latitude = 0.0 и longitude = 0.0, хотя pin на карте появляется сразу в реальном месте. Реальные координаты появляются только в onObjectUpdated спустя несколько секунд.

object : UserLocationObjectListener {
        override fun onObjectAdded(userLocationView: UserLocationView) {
            updateMyLocationPoint("onObjectAdded", userLocationView.pin)
        }

        override fun onObjectUpdated(userLocationView: UserLocationView, objectEvent: ObjectEvent) {
            updateMyLocationPoint("onObjectUpdated", userLocationView.pin)
        }

        private fun updateMyLocationPoint(action: String, pin: PlacemarkMapObject) {
            Log.d(action, "pin ${pin.geometry.latitude}" +
                    ", ${pin.geometry.longitude}" +
                    ", ${pin.isValid}" +
                    ", ${pin.isVisible}")
        }
    }

лог:

2021-07-15 13:59:41.504 18378-18378/com.android.debug D/onObjectAdded: pin 0.0, 0.0, true, true
2021-07-15 13:59:41.506 18378-18378/com.android.debug D/onObjectUpdated: pin 0.0, 0.0, true, false
2021-07-15 13:59:41.507 18378-18378/com.android.debug D/onObjectUpdated: pin 0.0, 0.0, true, false
2021-07-15 13:59:56.241 18378-18378/com.android.debug D/onObjectUpdated: pin 58.0077645, 56.2651901, true, false

Аналогичная ситуация и с userLocationView.arrow userLocationView.accuracyCircle. В итоге имеем существенный лаг в получении реальных координат.