рдореИрдВ рдорд╛рдирдЪрд┐рддреНрд░ рдХреА рдКрдВрдЪрд╛рдИ рдХреЛ рд╕реНрдХреНрд░реАрди рдЖрдХрд╛рд░ рдореЗрдВ рдлрд┐рдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА height:100%
ред рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд░реЗрдВ?
рдзрдиреНрдпрд╡рд╛рдж!
рдореИрдВ рдПрдЬреАрдПрдо рдЯреИрдЧ рдХреЛ рджреЛ рдХрдВрдЯреЗрдирд░ рддрддреНрд╡реЛрдВ рдореЗрдВ рд▓рдкреЗрдЯрддрд╛ рд╣реВрдВ
<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% рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛, рдЖрдВрддрд░рд┐рдХ рдХрдВрдЯреЗрдирд░ рдХреЛ рдХреБрдЫ рдордирдорд╛рдиреА рдКрдВрдЪрд╛рдИ рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ (рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛),
рдФрд░ рдЗрд╕ рддрд░рд╣ рд╕реАрдПрд╕рдПрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдЬреАрдПрдо рддрддреНрд╡ 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;
}
}
}
рдореИрдВ рдлрд┐рд░ рдирд┐рд╖реНрдХреНрд░рд┐рдп, рдХреЗрдВрджреНрд░ рдкрд░рд┐рд╡рд░реНрддрди, рдФрд░ рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдШрдЯрдХ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ
@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;
рдмрд╕ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рд░реЗрдВрдбрд░рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ @ рдХреЛрдгреАрдп/рдХреЛрд░ рдХреЗ рд╕рд╛рде-рд╕рд╛рде HostListener . рд╕реЗ рднреА рдХрд░рддреЗ рд╣реИрдВ
рдирдорд╕реНрддреЗ,
рд╢реБрдн рджрд┐рд╡рд╕ред
рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреНрд╡рд░рд┐рдд рдкреНрд░рд╢реНрди, рдореИрдВ рдЗрд╕реЗ рдкрд╣рд▓реЗ рд▓реЛрдб рдкрд░ рдХреИрд╕реЗ рд╕реЗрдЯ рдХрд░реВрдВ? рдЬрдм рдкреГрд╖реНрда рд╡реЗрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд▓реЛрдб рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдЖрдХрд╛рд░ рд╡рд░реНрддрдорд╛рди рд╕реНрдХреНрд░реАрди рдореЗрдВ рдлрд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ? рдзрдиреНрдпрд╡рд╛рджред
рд╕рд╛рджрд░ред
рдЬреЗ рдЬреЗ
рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВ :)
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдореИрдВ рдПрдЬреАрдПрдо рдЯреИрдЧ рдХреЛ рджреЛ рдХрдВрдЯреЗрдирд░ рддрддреНрд╡реЛрдВ рдореЗрдВ рд▓рдкреЗрдЯрддрд╛ рд╣реВрдВ
рдлрд┐рд░ рдореИрдВрдиреЗ рдмрд╛рд╣рд░реА рдХрдВрдЯреЗрдирд░ рдХреЛ 100% рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛, рдЖрдВрддрд░рд┐рдХ рдХрдВрдЯреЗрдирд░ рдХреЛ рдХреБрдЫ рдордирдорд╛рдиреА рдКрдВрдЪрд╛рдИ рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ (рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛),
рдФрд░ рдЗрд╕ рддрд░рд╣ рд╕реАрдПрд╕рдПрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдЬреАрдПрдо рддрддреНрд╡ 100% рддрдХред
рдореИрдВ рдлрд┐рд░ рдирд┐рд╖реНрдХреНрд░рд┐рдп, рдХреЗрдВрджреНрд░ рдкрд░рд┐рд╡рд░реНрддрди, рдФрд░ рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдШрдЯрдХ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд░ рднреА рд╕реЗрдЯ рдХрд░реЗрдВ
рдмрд╕ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рд░реЗрдВрдбрд░рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ @ рдХреЛрдгреАрдп/рдХреЛрд░ рдХреЗ рд╕рд╛рде-рд╕рд╛рде HostListener . рд╕реЗ рднреА рдХрд░рддреЗ рд╣реИрдВ