File

libs/open-layers/src/lib/controls/legend/ol-layer-legend-url/ol-layer-legend-url.component.ts

Description

Legend component to ascertain the legend url, gathered by the WMS capabilities

Metadata

selector n52-ol-layer-legend-url
templateUrl ./ol-layer-legend-url.component.html

Index

Methods
Inputs
Outputs

Constructor

constructor(wmsCaps: WmsCapabilitiesService)
Parameters :
Name Type Optional
wmsCaps WmsCapabilitiesService No

Inputs

layer
Type : Layer

Outputs

legendUrl
Type : EventEmitter<string>

Returns the legend url

Methods

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>
Legend
Html element
Component
Html element with directive

result-matching ""

    No results matching ""