地図の高さを画面サイズに合わせたい。 height:100%
を試しました。 しかし、それは機能しません。 やり方を教えていただけますか?
ありがとう!
AGMタグを2つのコンテナ要素でラップします
<div class="outer-wrapper">
<div class="map-wrapper" id="wrapper" #wrapper>
<agm-map
[latitude]="latitude"
[longitude]="longitude"
[scrollwheel]="true"
[zoom]="zoom"
(idle)="idle()"
(centerChange)="centerChange($event)"
id="AgmMap"
#AgmMap>
<agm-marker
[latitude]="latitude"
[longitude]="longitude"
[markerClickable]="true"></agm-marker>
</agm-map>
</div>
</div>
次に、外側のコンテナを100%に設定し、内側のコンテナを任意の高さに設定します(問題ではありません)。
そして、このようなCSSを介してAGM要素を100%にします。
.outer-wrapper {
height: 100%;
width: 100%;
padding: 0;
margin: 0;
.map-wrapper {
height: 400px;
agm-map {
height: 100%;
width: 100%;
margin: 0;
padding: 0;
}
}
}
次に、コンポーネントで次の関数を使用して、アイドル、centerChange、およびサイズ変更イベントをキャプチャします
@HostListener('window:resize')
onWindowResize() {
this.onResize();
}
ngAfterViewInit() {
this.renderer.setElementStyle(
this.wrapper.nativeElement, 'height',
(window.innerHeight) + 'px'
);
}
onResize() {
// resize the container for the google map
this.renderer.setElementStyle(
this.wrapper.nativeElement, 'height',
(window.innerHeight ) + 'px'
);
// recenters the map to the resized area.
this.agmMap.triggerResize().then(() =>
this.agmMap._mapsWrapper.setCenter({lat: this.centerLat, lng: this.centerLng}));
}
// idle fires after paning or zooming is done.
// This is where we want to capture the center of the map.
// This way if the user resizes, the center is preserved.
idle() {
this.centerLat = this.changeLat;
this.centerLng = this.changeLng;
}
// this event fires whenever any event changes the center. Panning, zooming, or resizing.
centerChange(event: any) {
if (event) {
this.changeLat = event.lat;
this.changeLng = event.lng;
}
}
また、次の変数を設定します
@ViewChild('AgmMap') agmMap: any;
@ViewChild('wrapper') wrapper: ElementRef;
public latitude: number;
public longitude: number;
private centerLat: number;
private centerLng: number;
public zoom: number;
private changeLat: number;
private changeLng: number;
@ angular / coreのレンダラーとHostListenerを使用していることを確認してください
やあ、
良い一日。
サイズ変更、簡単な質問で機能しますが、最初のロード時にこれをどのように設定しますか? ページがWebブラウザーに読み込まれたときに、現在の画面に合わせてサイズを変更するにはどうすればよいですか? ありがとう。
よろしく。
JJ
どうでも :)
最も参考になるコメント
AGMタグを2つのコンテナ要素でラップします
次に、外側のコンテナを100%に設定し、内側のコンテナを任意の高さに設定します(問題ではありません)。
そして、このようなCSSを介してAGM要素を100%にします。
次に、コンポーネントで次の関数を使用して、アイドル、centerChange、およびサイズ変更イベントをキャプチャします
また、次の変数を設定します
@ angular / coreのレンダラーとHostListenerを使用していることを確認してください