Неправильный центр карты в iOS с использованием nativescript-google-maps-sdk - PullRequest
0 голосов
/ 16 января 2019

В iOS, когда я помещаю маркер и местоположение mapView, карта не отображается по центру, но если переместить телефон в горизонтальное положение и снова повернуть, чтобы установить портрет, центр карты отобразится нормально. В Adnroid работает нормально.

Вы можете получить больше информации в этом выпуске github: https://github.com/dapriett/nativescript-google-maps-sdk/issues/322

1 Ответ

0 голосов
/ 30 января 2019

Я лично сталкивался с этим и обнаружил, что это в основном проблема макета на 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

...