Согласно справочной документации ngx, ссылка (leafletMapMoveEnd)
и (leafletMapZoomEnd)
являются открытыми событиями.
Я предполагаю, что эти события отображаются в той же модели DOM, в которой инициализирована карта, и должны быть реализованы следующим образом:
<div
leaflet
[leafletOptions]="options"
(leafletMapReady)="onMapReady($event)"
(leafletMapMoveEnd)="onMapMove($event)"
(leafletMapZoomEnd)="onMapZoom($event)">
Это правильный способ поймать эти события?
(leafletMapReady)
вроде работает нормально.
Однако ни (leafletMapZoomEnd)
, ни (leafletMapMoveEnd)
, похоже, не срабатывают, когда я сам ввязываюсь в карту.
Я пробовал панорамировать карту, а также увеличивать и уменьшать масштаб. Ни одно из этих взаимодействий не приводит к срабатыванию handleMapZoomEnd($event)
handleMapMoveEnd($event)
методов.
import { Component, Input, OnChanges, OnInit, Output, EventEmitter } from '@angular/core';
import * as fromLeafLet from 'leaflet';
import 'leaflet.markercluster';
@Component({
selector: 'map',
templateUrl: './map.component.html',
styleUrls: [
'./map.component.css',
'./extra-marker-icon.css'
]
})
export class MapComponent implements OnInit, OnChanges {
constructor(){}
onMapReady(map: fromLeafLet.Map): void {
this.map = map;
}
onMapZoom(event: any):void{
console.log('Zoom');
this.onMapDirty.emit();
}
onMapMove(event: any):void{
console.log('Move');
this.onMapDirty.emit();
}
}
leafletMapZoom
событиях. Следует ли мне изменить формулировку вопроса, чтобы лучше отразить это? - person mrOak   schedule 22.08.2018