volga-volga / react-native-yamap

React Native Yandex Maps | Яндекс Карты | Yandex.MapKit implementation for react native | YandexMaps
144 stars 80 forks source link

При открытии карты на ios позиция камеры отображается некорректно позиции пользователя. #242

Open zcdev02 opened 1 year ago

zcdev02 commented 1 year ago

При открытии карты, а именно при срабатывании initialRegion позиция камеры у пользователя может сместиться в верхний левый угол. Причем происходит это только на устройствах ios. В какой момент срабатывает - не скажу, потому что это полный рандом. Может с первой попытки открыть с правильной позицией камеры, а может сместиться. Это происходит даже после правильной установки камеры (со временем она все равно может сместиться ) . Подскажите куда копать в модуле(я уверен, что проблема в нем, потому что андроид работает хорошо)?

Как визуально это выглядит? смотреть ниже: При открытии карты либо положение камеры будет верным и будет положение под цифрой 2, либо будет положение камеры под цифрой 1. Если открывается под цифрой один, то zoom работает с квадратом под цифрой 1. В дальнейшем все остальное работает некорректно( setCenter, setZoom , да вообще что угодно)

Прикол

SergeyShapliuk commented 1 year ago

Такая же проблема. Причем совсем недавно работало все хорошо.

sm1thana commented 1 year ago

Такая же проблема, только ещё в моменты этой проблемы карта вылезает за пределы контейнера. Т.е. иногда работает нормально, вот так: изображение

А иногда вот так сбивается позиция камеры и размеры карты изображение

Только на ios и непредсказуемо. Иногда при первом открытии страницы. Иногда при первом ок, но при последующих.

zcdev02 commented 1 year ago

Такая же проблема, только ещё в моменты этой проблемы карта вылезает за пределы контейнера. Т.е. иногда работает нормально, вот так: изображение

А иногда вот так сбивается позиция камеры и размеры карты изображение

Только на ios и непредсказуемо. Иногда при первом открытии страницы. Иногда при первом ок, но при последующих.

Ну вот у меня та же проблема с ios устройством. Только проблему с вылезанием карты за пределы view я поправил и поэтому у меня получилось так, как на моих картинках. У тебя если поправить вылезание карты за пределы view твоего будет ровно тоже самое, что и у меня. Только я так и не догнал, что вызывает эту проблему. Одно точно знаю, что дело в самом yamap. Я пробовал в ручную камеру перебрасывать при помощи setCenter. Сравнивал lat и lon координаты и если они отличались от входящих (координаты с geo) , то делал насильно переброс камеры в geo. Только это ничего не дало. Зато я узнал , что с этим багом с колбэка камеры возвращается координата lat с разницей в 6 знаков с конца от lat с geo. Например, lat : 10.123456789012345 и lon: 11.123456789012345 (geo координаты пользователя). В случае бага камеры колбэк выдает такие координаты: lat : 10.123456789543210 и lon: 11.123456789012352. lon координата отличается на 1 знак с конца. Может дело в том, как эти координаты конвертируются в float внутри модуля, а может какой-то косяк с самой камерой. Не знаю. Хотелось бы получить комментарии разработчиков yamap.

sm1thana commented 1 year ago

Только проблему с вылезанием карты за пределы view я поправил и поэтому у меня получилось так, как на моих картинках.

А не подскажешь как? Я фиксировал размеры карты, я оборачивал её во view и фиксировал его размеры. Ничего не помогло.

zcdev02 commented 1 year ago
<View style={{flex:1}}>
<Map/>
</View>

либо:

<View style={{overflow: 'hidden'}}>
<View style = {[styles.map]}
<Map/>
<View>
</View>

оба помогли мне)

zcdev02 commented 1 year ago

@ownikss , ??

aspidvip commented 1 year ago

У меня карты на все окно мобилки, я попробую ваш вариант! Тестировать на реальном устройстве?! Или на эмуляторе пойдет?!

Пн, 24 апр. 2023 г. в 22:05, sm1thana @.***>:

Такая же проблема, только ещё в моменты этой проблемы карта вылезает за пределы контейнера. Т.е. иногда работает нормально, вот так: [image: изображение] https://user-images.githubusercontent.com/29203592/233990797-be398d12-b609-4ade-8db6-83851826cc42.png

А иногда вот так сбивается позиция камеры и размеры карты [image: изображение] https://user-images.githubusercontent.com/29203592/233990972-9896a714-695c-46f9-9cc7-71e112dff7b4.png

Только на ios и непредсказуемо. Иногда при первом открытии страницы. Иногда при первом ок, но при последующих.

— Reply to this email directly, view it on GitHub https://github.com/volga-volga/react-native-yamap/issues/242#issuecomment-1520030319, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFMO6V726OHZ4D6LT7VZONDXCZUCDANCNFSM6AAAAAAXDXE3GY . You are receiving this because you are subscribed to this thread.Message ID: @.***>

-- Бондаренко Андрей Анатольевич Тел.: +7914-680-1416 Skype: andrei.b4

sm1thana commented 1 year ago

У меня карты на все окно мобилки, я попробую ваш вариант! Тестировать на реальном устройстве?! Или на эмуляторе пойдет?!

Добрый!

проблема со скрина воспроизводится как на эмуляторе, так и на реальном телефоне с iOS. Но она не постоянная. Часто проявляется при первом же открытии страницы и все последующие. Иногда бывает первый раз карта в рамках контейнера, но последующие открытия страниц расползается. Координаты точки всегда одни и теже, т.к. берутся из базы данных.

На полном экране карту не использую, но судя по сообщениям @zcdev02 там такая же проблема.

Спасибо.

vdadayan commented 1 year ago

Была такая же проблема, помогло то, что убрал View который оборачивал карту и оставил просто реакт фрагмент <></>. Надеюсь кому то поможет!

fonderkin commented 11 months ago

Такая же проблема, через раз проявляется как на эмуляторе, так и на боевом устройстве.

artymir commented 10 months ago

+1

Temirlan commented 10 months ago

<YaMap key={loadedMap ? 'loaded' : 'pending'} style={styles.map} onMapLoaded={() => setLoadedMap(true)}

pavlenstory commented 3 weeks ago

Мне не помогло, ):