angular-google-maps - нужен пример абстрактного класса fitBoundsAccessor - PullRequest
0 голосов
/ 29 сентября 2018

Я пытаюсь использовать параметр fitBounds в agm-map , чтобы автоматически подогнать карту Google к доступным данным.Я делаю что-то не так;вот мой код:

<div class="map">
  <agm-map [latitude]= "latitude" 
           [longitude]="longitude"
           [fitBounds]="true">

    <agm-data-layer [geoJson]="listOfPaths"
                    [style]="styleFunc" 
                    [agmFitBounds]="true">
    </agm-data-layer>

  </agm-map>
</div>

Я не делаю ничего другого, связанного с этой реализацией (т. е. никакой машинописи, связанной), но я вижу в документах , что я долженmsgstr "реализовать абстрактный класс FitBoundsAccessor".Кто-нибудь может привести пример, как это сделать?

Вот ошибка: compiler.js: 1021 Ошибка Uncaught: ошибки синтаксического анализа шаблона: нет поставщика для FitBoundsAccessor ("-> [ОШИБКА ->]

1 Ответ

0 голосов
/ 24 января 2019

Директива fitBounds работает только на agm-marker и пользовательских компонентах, т.е. , а не на agm-data-layer!

. Чтобы решить эту проблему, вы можете заключить agm-data-layer в пользовательскийкомпонент, подобный этому:

@Component({
  selector: 'app-agm-data-layer-wrapper',
  template: '<agm-data-layer></agm-data-layer>',
  styleUrls: ['./agm-data-layer-wrapper.component.scss'],
  providers: [
    AgmDataLayerWrapperComponent ,
    {provide: FitBoundsAccessor, useExisting: AgmDataLayerWrapperComponent}
  ],
})
export class AgmDataLayerWrapperComponent implements FitBoundsAccessor {

   ...

   getFitBoundsDetails$(): Observable<FitBoundsDetails> {
     // return the relevant coordinates here
   }
}

(Конечно, вам нужно перенаправить соответствующие входы и выходы.)

...