Неправильный центр карты в iOS с использованием nativescript-google-maps-sdk
В iOS, когда я помещаю маркер и местоположение mapView, карта не отображается по центру, но если переместить телефон в горизонтальное положение и снова повернуть, чтобы установить портрет, центр карты будет отображаться нормально. В Adnroid работает отлично.
Вы можете получить больше информации в этом выпуске github: https://github.com/dapriett/nativescript-google-maps-sdk/issues/322
1 ответ
Я лично столкнулся с этим и обнаружил, что это в основном проблема с версткой на iOS. height
а также width
Значения атрибутов, предоставляемые XML-элементу MapView, обрабатываются iOS по-разному. Решение нашей проблемы, как описано в самом вопросе, resizing
карта во время выполнения (поскольку вращение экрана заставляет его проходить процедуру изменения размера). Применение этой абсурдной логики в начале рендера карты решает проблему.
Вот как я это сделал:
Предоставить width
значение MapView в XML:
<maps:mapView width="100%" mapReady="onMapReady" />
и установить height
карты внутри onMapReady
метод с задержкой 100 миллисекунд.
/* if you want to set height in DIP */
setTimeout(() => this.mapView.height = 500, 100);
или если вы хотите установить высоту в процентах
/* [0.85 means 85% here] */
setTimeout(() => this.mapView.height = {
unit: '%',
value: 0.85
}, 100);
Задержка в 100 миллисекунд заставляет его пройти через resize
эффект. Протестировано на iOS 12.1