Сохраняет ли AGM сеанс Google Map при повторной инициализации компонента? - PullRequest
1 голос
/ 04 ноября 2019

В настоящее время мы работаем над мощным порталом по продажам в Angular. Мы решили использовать библиотеку AGM , которая обеспечивала очень хорошую поддержку как Angular, так и TypeScript.

Мы отображаем карту на на каждой странице результатов поиска , и когда пользователь перемещается назад и вперед от результатов поиска к странице сведений о продукте, мы уничтожаем / повторно инициализируем MapComponent. Я немного волнуюсь, если это не вызовет дополнительные запросы / сеансы Google Maps, так как он повторно инициализируется, но я понятия не имею, как сделать метрики. К сожалению, мы не можем легко скрыть / показать компонент из-за архитектуры нашего приложения.

Итак, вопрос в том, как ведет себя сеанс в AGM? Создает ли каждая повторная инициализация компонента новый платный запрос? Заранее спасибо.

1 Ответ

1 голос
/ 04 ноября 2019

Как и любой другой угловой компонент, когда agm-map удаляется из дерева компонентов, он удаляется из DOM. Объект google.maps.Map уничтожается и воссоздается при повторном показе компонента.

Хотя реинитализация не полностью с нуля. Скрипт Google Maps загружается только один раз для каждого проекта (по крайней мере, один раз для вызова AgmCoreModule.forRoot, который должен вызываться только один раз в любом обычном проекте). Таким образом, в то время как google.maps.Map object уничтожается и повторно инициализируется, сценарий остается.

Ваше последнее местоположение и все полигоны и т. Д. НЕ БУДЕТ кэшироваться, потому что, когда компонент agm-map создается или воссоздается, он устанавливает атрибут centerс нуля.

Что касается цен, google docs , похоже, предполагает, что с вас будет взиматься плата за каждое воссоздание карты.

...