Я пытаюсь повторно использовать тот же экземпляр google.maps.Map
при переходе к / из представления с MapComponent.Когда я покидаю / уничтожаю MapCompnent, я сохраняю элемент DOM карты Google в DIV.style={display:none}
ngOnDestroy() {
google.maps.event.clearInstanceListeners(this.map);
const parent = this.element.nativeElement;
let stash = document.getElementById('stash-google-maps');
if (!stash) {
stash = this.renderer.createElement('DIV');
stash.id = 'stash-google-maps';
stash.style.display = "none";
// stash.style.opacity = "0";
this.renderer.appendChild(this._document.body, stash);
}
while (parent.childNodes.length > 0) {
stash.appendChild(parent.childNodes[0]);
}
}
, когда возвращаюсь обратно к представлению, я перемещаю элемент DOM карты Google обратно в HTML-код MapComponent.Кажется, все работает нормально, за исключением размера карты неправильно.Карта рисует плитки вне нового, содержащего DIV.
Я пытался вызвать google.maps.event.trigger(this.map, 'resize');
, но это кажется устаревшим в текущем API v3.34.
что мне делать?