Implement *fm-map-ifZoomToShowdirective
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
import { Directive, ViewContainerRef,TemplateRef,OnInit,Input } from '@angular/core';
|
||||
import { IItemLayer } from '../../models/item.layer';
|
||||
import { MapComponent } from 'ngx-openlayers';
|
||||
|
||||
@Directive({
|
||||
selector: '[fm-map-ifZoomToShow]',
|
||||
})
|
||||
export class ifZoomToShowDirective implements OnInit {
|
||||
@Input('fm-map-ifZoomToShow') itemLayer$:IItemLayer;
|
||||
|
||||
constructor(private templateRef$: TemplateRef<any>,private viewContainerRef$: ViewContainerRef,private map$: MapComponent) { }
|
||||
private hasView = false;
|
||||
ngOnInit() {
|
||||
let minZoom = this.itemLayer$.layer.getMinZoom();
|
||||
let currentZoom = this.map$.instance.getView().getZoom();
|
||||
|
||||
if ( currentZoom < minZoom ) {
|
||||
this.viewContainerRef$.createEmbeddedView(this.templateRef$);
|
||||
this.hasView=true;
|
||||
} else if (this.hasView) {
|
||||
this.viewContainerRef$.clear();
|
||||
this.hasView = false;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user