Erstellt einen Filter auf eine generische Ebene exklusiv für den anfordernden Benutzer.
Hinweis: alle mit einem * in der Beschreibung gekennzeichneten Angaben sind optional
theLayer
theStmt
FilterTarget
Wird als Statement "DROP" angegeben, wird der Filter entfernt.
Ein vorher mit CreateUserFilter beschriebenere Filter wird ersetzt.
Hat dieser Filter eine Angaben einer ILF-Datei, überschreibt diese die Symboldefinition der Basisebene
Der Filter der Basisebene wird in jedem Fall berücksichtigt.
Wird FilterTarget nicht angegeben, wird "ALL" angenommen.
Go;
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Beispiel
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
End;
http://www.webmapserver.de/ISQL
führt eine Sachdaten- oder geografisch basierte Suche durch
Hinweis: alle mit einem * in der Beschreibung gekennzeichneten Angaben sind optional
MaxIs
theType
theLayerList
theField
theValue
theJoinType
theGeometry
FetchGeo
Bei der Sachdatensuche (theType=ATTR) kann nur immer ein Wert pro angegebenem Feld angegeben werden. Sollen komplexere Abfragen erstellt werden, dann muss ein Feld mehrmals angegeben und entsprechend kombiniert werden. (siehe Beispiel)
Bei der Verschneidung eines Punkt- oder Linienshapefiles mit einer Punkt-Geometrie wird ein Suchpuffer von einem Meter erzeugt.
Bei der Verschneidung eines Punktelayers mit einer Liniengeometrie sind keine Ergebnisse zu erwarten.
Go;
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sachdatensuche mit einem Feld-Wert-Paar
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
ret=ExecOld("ExecuteTheSelection", theLayerList:"STRASSE", theType:"ATTR", theField:"NAME" theValue:"Hauptstraße");
End;
Go;
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sachdatensuche mit mehreren Feld-Wert-Paaren
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
ret=ExecOld("ExecuteTheSelection", theLayerList:"GEBAEUDE", theType:"ATTR", theField:"STRASSE|HAUSNUMMER", theValue:"Hauptstraße|15");
End;
Go;
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sachdatensuche mehrerer Werte in einem Feld
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
ret=ExecOld("ExecuteTheSelection", theLayerList:"STRASSE", theType:"ATTR", theField:"NAME|NAME|NAME", theValue:"Hauptstraße|Bahnhofstraße|Musterstraße", theJoinType:"OR"); /* (ACHTUNG: unbedingt theJoinType auf OR setzen, da sonnst keinesfalls etwas gefunden werden kann)
End;
Go;
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Geografische Verschneidung mit Punk (Karteneinheiten)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
ret=ExecOld("ExecuteTheSelection, theLayerList:"GEBAEUDE", theType:"GEOM", theGeometry:"gPoint:5436556|5686343");
End;
Go;
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Geografische Verschneidung mit Polygon (Bildeinheiten)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
ret=ExecOld("ExecuteTheSelection", theLayerList=GEBAEUDE", theType=GEOM", theGeometry=iPoly:0|100|100|100|100|0|0|0");
End;
ExecuteTheSelectionEx, theGeometry
Führt eine SQL ähnliche Selektion auf die Geometrie oder Sachdaten einer Ebene aus.
Hinweis: alle mit einem * in der Beschreibung gekennzeichneten Angaben sind optional
theLayer
FetchGeo
theStmt
Go;
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Beispiel
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
sql="SELECT MY.* FROM $SELF AS MY " +" WHERE KREIS LIKE " +"''''BAUTZEN'''' AND BEVOELK >= 5092 AND KREIS_ST <> ''''N''''"; ret=ExecOld("ExecuteTheSelectionEx", theLayer:"ELBE", FetchGeo:false, theStmt:sql); if(not(ret)); print(GetLastError()); endif; Print(sql+"
");
End;