根据 ngx-leaflet 文档链接 (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();
}
}