libs/open-layers/src/lib/controls/legend/ol-layer-legend-url/ol-layer-legend-url.component.ts
Legend component to ascertain the legend url, gathered by the WMS capabilities
selector | n52-ol-layer-legend-url |
templateUrl | ./ol-layer-legend-url.component.html |
Methods |
|
Inputs |
Outputs |
constructor(wmsCaps: WmsCapabilitiesService)
|
||||||
Parameters :
|
layer | |
Type : Layer
|
|
legendUrl | |
Type : EventEmitter<string>
|
|
Returns the legend url |
Public deliverLegendUrl |
deliverLegendUrl()
|
Returns :
void
|
import { Component, EventEmitter, Input, Output } from '@angular/core';
import { Layer } from 'ol/layer';
import { TileWMS } from 'ol/source';
import { WmsCapabilitiesService } from '../../../services/wms-capabilities.service';
/**
* Legend component to ascertain the legend url, gathered by the WMS capabilities
*/
@Component({
selector: 'n52-ol-layer-legend-url',
templateUrl: './ol-layer-legend-url.component.html'
})
export class OlLayerLegendUrlComponent {
@Input() layer: Layer;
/**
* Returns the legend url
*/
@Output() legendUrl: EventEmitter<string> = new EventEmitter();
constructor(
private wmsCaps: WmsCapabilitiesService,
) { }
public deliverLegendUrl() {
const source = this.layer.getSource();
this.layer.getExtent();
if (source instanceof TileWMS) {
const url = source.getUrls()[0];
const layerid = source.getParams()['layers'] || source.getParams()['LAYERS'];
this.wmsCaps.getLegendUrl(layerid, url).subscribe(res => this.legendUrl.emit(res));
}
}
}
<span (click)="deliverLegendUrl()">show Legend</span>