Angular-google-maps: рдорд╛рдирдЪрд┐рддреНрд░ рдХреА рдКрдВрдЪрд╛рдИ рдХреЛ рд╕реНрдХреНрд░реАрди рдЖрдХрд╛рд░ рдореЗрдВ рдХреИрд╕реЗ рдлрд╝рд┐рдЯ рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 4 рдлрд╝рд░ре░ 2018  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: SebastianM/angular-google-maps

рдореИрдВ рдорд╛рдирдЪрд┐рддреНрд░ рдХреА рдКрдВрдЪрд╛рдИ рдХреЛ рд╕реНрдХреНрд░реАрди рдЖрдХрд╛рд░ рдореЗрдВ рдлрд┐рдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА 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 . рд╕реЗ рднреА рдХрд░рддреЗ рд╣реИрдВ

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореИрдВ рдПрдЬреАрдПрдо рдЯреИрдЧ рдХреЛ рджреЛ рдХрдВрдЯреЗрдирд░ рддрддреНрд╡реЛрдВ рдореЗрдВ рд▓рдкреЗрдЯрддрд╛ рд╣реВрдВ

<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 . рд╕реЗ рднреА рдХрд░рддреЗ рд╣реИрдВ

рдирдорд╕реНрддреЗ,

рд╢реБрдн рджрд┐рд╡рд╕ред

рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреНрд╡рд░рд┐рдд рдкреНрд░рд╢реНрди, рдореИрдВ рдЗрд╕реЗ рдкрд╣рд▓реЗ рд▓реЛрдб рдкрд░ рдХреИрд╕реЗ рд╕реЗрдЯ рдХрд░реВрдВ? рдЬрдм рдкреГрд╖реНрда рд╡реЗрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд▓реЛрдб рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдЖрдХрд╛рд░ рд╡рд░реНрддрдорд╛рди рд╕реНрдХреНрд░реАрди рдореЗрдВ рдлрд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ? рдзрдиреНрдпрд╡рд╛рджред

рд╕рд╛рджрд░ред
рдЬреЗ рдЬреЗ

рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВ :)

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

ChrisDevinePimss picture ChrisDevinePimss  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

gizm0bill picture gizm0bill  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Halynsky picture Halynsky  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

DeveloperAdd007 picture DeveloperAdd007  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

gnujeremie picture gnujeremie  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ