WebGIS 5.0 API: service

Members

Name

Beschreibung

getLayer (id)

Gibt einen Layer aufgrund seiner Id zurück.

getLayerFromName (name)

Gibt ein Layer aufgrund seines Namens zurück.

getLayerIds ()

Gib eine Auflistung aller Layer Ids in einem Service zurück.

getLayerIdsFromNames (layernames)

Gibt ein Array mit den Ids der übergeben Layer zurück.

getLegendUrl ()

Erzeugt einen Link zum Abholen das aktuellen Legendbildes für den Dienst.

getPreviewUrl (r)

Mit dieser Methode kann eine Vorschaubild eines Dienstes in einer gewissen Größe abgeh…

layerInScale (id)

Überprüft, ob ein Layer im aktuellen Kartenmaßstab sichtbar ist.

refresh ()

Erzwingt ein Neuzeichnen des Dienstes in der Karte.

remove ()

Entfernt einen Dienst aus einer Karte.

setLayerVisibility (layerids, visible)

Setzt die Sichtbarkeit von Layern über ihre Id.

setOpacity (opacity)

Gib die Transparenz für ein Service an.

setServiceVisibility (layerids)

Setzt alle Layer mit einer ensprechenden Id sichbar und alle restlichen Layer unsichtbar.

Properties

Name

Beschreibung

id

Die Id des Dienstes.

isBasemap

Gibt an, ob es sich bei diesem Service um einen Hintergrunddienst handelt.

layers

Ein Array der Layer des Dienstes.

map

Das map Objekt der in dem das Service eingebunden ist.

name

Der Name des Services.

opacity

Gibt die Transparenz des Dienstes an.

Member Details

getLayer (id)

Beschreibung

Gibt einen Layer aufgrund seiner Id zurück. Wenn der Layer im Dienst nicht gefunden wird, ist der Rückgabewert null.

Beispiel

var layer = service.getLayer('2');
if(layer != null) {

    // do something

}

getLayerFromName (name)

Beschreibung

Gibt ein Layer aufgrund seines Namens zurück. Wenn der Layer im Dienst nicht gefunden wird, ist der Rückgabewert null.

Beispiel

var layer = getLayerFromName('Verwaltungsdaten\\PLZ-Flächen');
if(layer != null) {

// do something

}

getLayerIds ()

Beschreibung

Gib eine Auflistung aller Layer Ids in einem Service zurück. Der Rückgabewert ist ein Array, das dann beispielsweise wieder an die Methode setLayerVisibility([],true/false) übergeben werden, um alle Layer in ein Dienst aus- oder einzuschalten.

Beispiel

Alle Layer in einem Dienst unsichtbar schalten. Der gleiche Effekt kann auch eleganter mit der Methode setServiceVisibility(); erfolgen.

var layerIds = service.getLayerIds();
service.setLayerVisibility(layerIds, false);
//
// Wieder alle Layer sichtbar schalten
service.setLayerVisibility(layerIds, true);
// bzw.
service.setServiceVisibliity(service.getLayerIds());

getLayerIdsFromNames (layernames)

Beschreibung

Gibt ein Array mit den Ids der übergeben Layer zurück. Übergeben wird ein Array von String mit den Layernamen.

Die Funktion ist nützlich, da die Ids beispielsweise für das setzen der Sichtbarkeit der Layer notwendig ist. Wenn sich bei Layer die Ids ändern können (zB beim AGS Services durch umsortieren der Layer), empfielt es die aktuellen Ids aus dem Namen zu holen.

Beispiel

var service=map.getService('estag_basis_ags@ccgis_default');
var layerIds=service.getLayerIdsFromNames(['Verwaltungsdaten\\PLZ-Flächen']);
//console.log(layerIds);
service.setLayerVisibility(layerIds,true);

getLegendUrl ()

Beschreibung

Erzeugt einen Link zum Abholen das aktuellen Legendbildes für den Dienst. Die Legende ist abhängig von der aktuellen Layer Sichtbarkeit und vom Kartenmaßstab. Die Url kann verwendet werden, um beispielsweise über einen AJAX Request die Legende abzuholen und das Ergebnis an ein Image Element zu übergeben. Der Rückgabewert ist ein JSON Objekt mit der Eigenschaft url. Diese Url ist ein Link auf das eigentliche Legenden Bild (png oder jpg).

Beispiel

$.ajax({
    url: service.getLegendUrl(),
    type: 'get',
    success: function(result) {
        if (result && result.url) {
            webgis.$('<img>').attr('src', result.url).appendTo('body');
        }
    }
});

getPreviewUrl (r)

Beschreibung

Mit dieser Methode kann eine Vorschaubild eines Dienstes in einer gewissen Größe abgeholt werden. Der Rückgabewert ist eine Url die einen Bild entspricht (png oder jpg). Diese Vorschau ist abhängig vom aktuellen Kartenmaßstab. Anwendungen für diese Methode sind beispielsweise die Vorschaubilder für die Hintergrundkarten im TOC.

Der Übergabeparameter muss ein Objekt mit den Werten width und height sein und gibt die Größe des Vorschaubildes an.

Beispiel

webgis.$("<div>").css('background', 'url(' + service.getPreviewUrl({width: 200, height: 200}) + ')').appendTo('body');

layerInScale (id)

Beschreibung

Überprüft, ob ein Layer im aktuellen Kartenmaßstab sichtbar ist. Gewisse Layer in einem Service können Maßstabsanhängig sein. Es macht beispielsweise wenig Sinn Grundstücksgrenzen in sehr kleinen Maßstaben darzustellen. Um abzufragen, ob ein Layer im aktuellen Maßstabsbereich sichtbar ist, kann diese Methode verwendet werden. Der Übergabeparameter ist die Id des entsprechenden Layers. Der Funktionsrückgabe wert ist entweder true oder false.

Beispiel

if(service.layerInScale('1')) {   // Layer mit Id 1
    // do something
}

refresh ()

Beschreibung

Erzwingt ein Neuzeichnen des Dienstes in der Karte. Durch diesen Befehl wird das Kartenbild für diesen Dienst neu vom Kartenserver abholt. Die Methode sollte in der Regel nicht aufgerufen werden müssen. Nach Änderungen in der Karte oder der Sichtbarkeit von Layern in diesem Dienst, wird die Methode automasich vom webGIS Framework ausgeführt.

Beispiel

service.refresh();

remove ()

Beschreibung

Entfernt einen Dienst aus einer Karte.

Beispiel

service.remove();

setLayerVisibility (layerids, visible)

Beschreibung

Setzt die Sichtbarkeit von Layern über ihre Id. Übergeben werden die entspechenden Ids als Array und der Bool-Wert, für die Sichtbarkeit: true=sichtbar, false=unsichtbar.

Beispiel

var service=map.getService('estag_basis_ags@ccgis_default');
service.setLayerVisibility(['1','2','3'],true);

setOpacity (opacity)

Beschreibung

Gib die Transparenz für ein Service an. Der Wert muss zwischen 0.0 und 1.0 liegen:

0.0 … komplett durchlässig

1.0 … nicht transparent

Beispiel

var service=map.getService('estag_basis_ags@ccgis_default');
service.setOpacity(0.5);

setServiceVisibility (layerids)

Beschreibung

Setzt alle Layer mit einer ensprechenden Id sichbar und alle restlichen Layer unsichtbar. Der Übergabe Parameter ist ein Array mit den Layer-Ids. Wird ein leeres Array oder Nichts übergeben, werden alle Layer in einem Dienst unsichtbar gesetzt.

Beispiel

// Nur die Layer 1,2,3 sichtbar setzen
service.setServiceVisibility(['1', '2', '3']);

// Alle Layer in einen Dienst unsichtbar setzten
service.setServiceVisibility();

// Alle Layer sichtbar schalten
service.setServiceVisibility(service.getLayerIds());

Property Details

id

Beschreibung

Die Id des Dienstes. Mit dieser Id kann ein Dienst auch in über ein map Objekt mit der Method getService(id) gefunen werden.

Beispiel

Das folgende Beispiel zeigt den Zusammenhang zwischen Dienst-Id und Karten Objekt.

// get service id
var serviceId = service.id

// get service map
var map = service.map;

// get service with id from map
var service_with_id = map.getService(id);

isBasemap

Beschreibung

Gibt an, ob es sich bei diesem Service um einen Hintergrunddienst handelt.

Beispiel

if(service.isBasemap == true) {
    // Do something
}

layers

Beschreibung

Ein Array der Layer des Dienstes. Die einzelnen Werte des besitzen wieder eigenschaften wie id und name.

Beispiel

Zum Suchen von Layern gibt es eigentlich die Methoden getLayer(), getLayerFromName(), und getLayerIdsFromNames() die verwendet werden sollten. In Ausnahme Fällen kann es aber auch wichtig sein die einzelen Layer aufzulisten

for(var l = 0; l < service.layers.length; l++) {
    var layer = service.layers[l];

    console.log(layer.id+" "+layer.name)
}

map

Beschreibung

Das map Objekt der in dem das Service eingebunden ist.

Beispiel

var serviceMap = service.map;
map.zoomTo([10,40,20,50]);

name

Beschreibung

Der Name des Services.

opacity

Beschreibung

Gibt die Transparenz des Dienstes an. Der Wert kann zwischen 0.0 (komplett tranzparent) und 1.0 (nicht transparent) liegen.

Der Wert sollte nicht gändert werden. Zum setzen der Transparenz soll die Methode setOpacity (opacity) verwendet werden.

Beispiel

var currentOpacity = service.opacity;