Post on 06-Feb-2018
transcript
6 Geodaten und XML6.1 Normen und Standards
6.2 XML
6.3 GML
6.4 XSLT
6.5 SVG
6.6 Zusammen-fassung
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 482
Geodaten und XML→Erfassung von Geodaten besonders teuer
→Geodaten sind langlebig, müssen trotzdem aktualisiert werden
→Geodienste werden vermehrt über das Internet angeboten
→Geodaten sollten integrierbar sein und leicht austauschbar
→einheitliche Visualisierung von Geodaten ist anzustreben
→möglichst keine speziellen Einzelformate benutzen sondern verbreitete Standards
aus: http://picture.yatego.com/
483Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009
6.1 Normen und Standards→Standards entstehen mit der Zeit durch häufige
Verwendung (de facto Standards)
→Standards werden durch Institutionen genormt
→im Englischen keine Unterscheidung zwischen “Standard” und “Norm”
→im Bereich Standards von Geodaten vor allem folgende Institutionen wichtig
International Organization for Standardization (ISO)
Open Geospatial Consortium (OGC)
Arbeitsgemeinschaft der Vermessungsverwaltungen der Länder der Bundesrepublik Deutschland (AdV)
484Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009
Normen und Standards→International Organization for Standardization
(ISO)internationale Vereinigung von Standardisierungsgremien aus ca. 150 Ländern
erarbeitet internationale Normen in vielen tech-nischen Bereichen
dient dem Austausch von Gütern und Dienstleis-tungen und der gegenseitige Zusammenarbeit
die erarbeiteten ISO-Normen (ISO-Standards) werden in Deutschland als DIN ISO-Normen übernommen
im Bereich Geoinformation 5 Arbeitsausschüsse (in ISO/TC 211)
485Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009
Normen und Standards→Nationale Normumgsinstitute und ISO
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 486
aus: http://www.geoinformation.net/
Normen und Standards→ISO/TC 211 Geographic information/Geomatics
ca. 60 Mitglieder
bearbeitet die Normenserie ISO 19100
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 487
aus: http://www.geoinformation.net/
Normen und Standards→ISO 19107 Spatial Schema
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 488
aus: http://www.geoinformation.net/
Normen und Standards→Geometrieklassen im Spatial Schema
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 489
aus: http://www.geoinformation.net/
Normen und Standards→Open Geospatial Consortium (OGC)
internationales Konsortium mit ca. 350 Mitgliedern (Industrie, Verwaltung, Forschung)
entwickelt Grundlagen für einheitliche Zugriffsmetho-den auf raumbezogene Informationen
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 490
aus: http://www.geoinformation.net/
Normen und StandardsProdukte des OGC sind Spezifikationen
• grundlegende Modelle, abstrakte Spezifikationen, Implementierungsspezifikationen
Übersicht über abstrakte Spezifikationen
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 491
aus: http://www.geoinformation.net/
Normen und Standardsbesonders wichtig: Simple Features
• Standard zur Modellierung der Geometrie raumbezogener Objekte
• 0-, 1-, 2-dimensional; gerade Linien; keine Topologie
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 492
Normen und Standards→Vergleich
SQL/MM Spatial vs. Simple Features Geometrie
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 493
Normen und Standards→Zusammenarbeit ISO/TC 211 mit OGC
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 494
aus: http://www.geoinformation.net/
Normen und Standards→Beispiel:
OpenGIS Catalogue Service ImplementationSpecification
unterstützt das Veröffentlichen und Suchen von raumbezogenen Metadaten
ca. 200 Druckseiten
enthält u.a. Syntax der Katalog-Anfrage-Sprache
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 495
aus: http://www.opengeospatial.org/standards/cat
Normen und Standards→Arbeitsgemeinschaft der Vermessungsverwaltun-
gen der Länder der Bundesrepublik Deutschland (AdV)
Koordination des Amtlichen deutschen Vermessungswesens
Erarbeitung von Empfehlungen für
• amtliches topographisch-kartographisches Informationssystem (ATKIS)
• amtliches Liegenschafts-Kataster-Informationssystem (ALKIS)
Vertretung des amtlichen deutschen Vermessungs-wesens in internationalen Institutionen
(vgl. Abschnitt 2.5 “Beispiel AAA-Projekt”)
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 496
Normen und Standardsbereitstellen von ISO/OGC-konformen Basiskompo-nenten für die Geodateninfrastruktur
Beispiel: AFIS-ALKIS-ATKIS Fachschema mit 226 Objektarten, darunter• Gebäude, darunter
• Objektartengruppe: Angaben zum Gebäude, darunter
• Objektklasse: AX_Gebaeude mit Defintion:
• Ein dauerhaft errichtetes Bauwerk, dessen Nachweis wegen seiner Bedeutung als Liegenschaft erforderlich ist sowie dem Zweck der Basisinformation des Liegenschaftskatasters dient
• mit 20 Attributen, darunter:
• Gebäudefunktion mit ca. 200 möglichen Werten, darunter:
• 2000 (Wirtschaft/Gewerbe), 2056 (Apotheke), 2081 (Gaststätte/Restaurant), 3071 (Polizei)
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 497
Normen und Standards• bereitstellen des Fachschemas (und aller Objektexemplare)
in ISO/OGC-konformen Formaten
• Beispiel: ein Gebäude
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 498
<AX_Gebaeude gml:id="DEHHSERV00001FN1">...
<position><gml:Polygon><gml:exterior>
<gml:Ring>...
<gml:pos>3567807.047 5930017.550</gml:pos><gml:pos>3567810.850 5930024.755</gml:pos>...
<gml:pos>3567807.047 5930017.550</gml:pos>...
</gml:Ring></gml:exterior>
</gml:Polygon></position><gebaeudefunktion>2000</gebaeudefunktion><weitereGebaeudefunktion>1170</weitereGebaeudefunktion><bauweise>2100</bauweise><anzahlDerOberirdischenGeschosse>1</anzahlDerOberirdischenGeschosse><anzahlDerUnterirdischenGeschosse>1</anzahlDerUnterirdischenGeschosse><dachform>3100</dachform>
</AX_Gebaeude>
6.2 XML→Extensible Markup Language, erweiterbare
Auszeichnungssprache
→Darstellung hierarchisch strukturierter Daten in Form von Textdateien
→Metasprache zur Beschrei-bung und Erzeugung von Auszeichnungssprachen
→“spezielle kontextfreie Grammatik zur Definition speziellerkontextfreier Grammatiken”
→“Standard zum Datenaustausch im Web”Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 499
XML→Auszeichnungssprache:
Sprache (Wörter über einem Alphabet) mit speziellen Symbolen (Marken, tags) in den Zeichenfolgen
→HTML-Beispiel: <ul><li><p>Geotopographische Basisinformationen in digitaler Form </li> <li><p> Geodä tische Referenz netze</li></ul>
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 500
aus: [EE04]
XML→eine (konkrete) Klasse von XML-basierten Anwen-
dungen wird auch Dokument-Klasse genannt
→eine Ausprägung zu solch einer Klasse ist ein Dokument (oder eine Anwendung)
→die Struktur von Dokument-Klassen kann durch Doku-menttypdefinitionen (DTDs) festgelegt werden
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 501
aus: http://www.swisseduc.ch/informatik/
XML→die wichtigsten Komponenten der DTDs sind
Elemente
Attribute
Entities
→Elemente sind Grundbausteine von XML-Dokumenten
bestehen aus je einem Beginn- und Ende-Tag
können auch leer sein
können geschachtelt werden (hierarchische Struktur von XML-Dokumenten)
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 502
XML<!ELEMENT stadt (name, einwohner?, gebiet)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT einwohner (#PCDATA)>
<!ELEMENT gebiet (polygon+)>
<!ELEMENT polygon
(punkt, punkt,
punkt, punkt,
punkt*)>
<!ELEMENT punkt (x, y)>
<!ELEMENT x (#PCDATA)>
<!ELEMENT y (#PCDATA)>
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 503
XMLmögliche Ausprägungen:
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 504
<?xml version="1.0" standalone="yes"?><!DOCTYPE stadt SYSTEM "stadt.dtd"><stadt><name>Braunschweig</name>
<einwohner>248000</einwohner><gebiet><polygon><punkt><x>10323</x><y>2294</y></punkt>
<punkt><x>10708</x><y>2429</y></punkt><punkt><x>11148</x><y>2594</y></punkt>...
<punkt><x>10353</x><y>2484</y></punkt></polygon>
</gebiet></stadt>
<?xml version="1.0" standalone="yes"?><!DOCTYPE stadt SYSTEM "stadt.dtd"><stadt><name>Ausschnitt</name>
<einwohner>aus</einwohner><gebiet><polygon><punkt><x>welchem</x><y>Text</y></punkt>
<punkt><x>Du</x><y>gleichst</y></punkt><punkt><x>dem</x><y>Geist</y></punkt>...<punkt><x>nicht</x><y>mir</y></punkt>
</polygon></gebiet>
</stadt>
XML→Attribute geben weitere Eigenschaften von
Elementen an
Beispiel:
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 505
<text font-family= "Arial" font-weight= "bold" font-size= "350"stroke= "#FFFFFF" fill= "#FFFFFF" x= "-130.0" y="115.0">U </text>
aus: [EE04]
XML→Entities
Platzhalter für Inhalte
werden einmal deklariert und können mehrfach benutzt werden
bei jeder Benutzungsstelle ersetzt Parser Verweis durch entsprechenden Wert
Beispiel:
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 506
<!ENTITY baumgrün "#00ff00"><!ENTITY grenzviolett "#9900ff"><path id="SN4100_einzelsignaturNadelholz"d="M 130 0 L -50 0 0 -180 50 0"fill="none" stroke-miterlimit="20"stroke-linejoin="miter"stroke-width="12" stroke="&baumgrün;"/>
XML→zentrales XML-Konzept ist Integration von Daten
und Meta-Daten (XML-Dokument enthält vollständige Selbst-beschreibung)
→daher Auslagerung von DTDs naheliegend (Wiederverwendung)
→bei umfangreichen Projekten durchaus einige DTDs notwendig (Namenskonflikte möglich)
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 507
XML→zur Verknüpfung
verschiedener XML-Dokumente mehrere Konzepte
Namensräume
XPath
XPointer
XLink
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 508
aus: http://www.jeckle.de/
XML→Namensräume
werden als Attribut (eines Elementes) deklariert und gelten für alle Unterbäume des Elementes
enthalten als Adresse einen Uniform ResourceIdentifier (URI)
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 509
<AX_Bestandsdatenauszugxmlns:gml="http://www.opengis.net/gml"...>...<gml:featureMember>......</gml:featureMember>...
</AX_Bestandsdatenauszug>
aus: [EE04]
XML→XML Path Language (XPath)
Adressierung innerhalb von XML-Dokumenten
Basis von XSL Transformations (XSLT) und XPointer
Navigation in XML-Dokumenten (Bäume) mit Adress-pfaden
→Adresspfade
absolut (beginnen mit ’/’ für Wurzelknoten) oder
relativ (zum aktuellen Kontextknoten)
enthalten Achsenangaben, Knotentests, Prädikate
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 510
aus: [EE04]
XML→Achsenangaben
child, parent, self, ancestor, ..., following-sibling
können teilweise kompakt notiert werden
→Knotentests
schränken die durch Achsenangaben spezi-fizierte Knotenmenge ein
Filterung per Knoten-name oder Knotentyp
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 511
→Prädikate
weitere Einschränkung von Knotenmengen
enthalten Vergleiche, Zeichenkettenfunktio-nen, numerische Funktionen
aus: http://de.selfhtml.org/
XML→XML Pointer Language (XPointer)
Adressierung von Teilen von XML-Dokumenten
Erweiterung von XPath
einfache Verweise verweisen auf XML-Elemente, die durch eine ID identifiziert werden
komplexe Verweise durch Spezifikation von Bereichen (start-point, end-point, range)
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 512
<g id="SN3316SymbolKirche"><path fill="none" stroke= "#000000" ... d="M0.0 -500.0 L 0.0 500.0"/><path fill="none" stroke= "#000000" ... d="M-275.0 -200.0 L 275.0 -200.0"/>
</g><use transform="translate(120515.9,152201.3)
rotate(136)"xlink:href="#SN3316SymbolKirche"/>
XML→XML Linking Language (XLink)
Syntax zur Definition von Links in XML-Dokumenten
XLinks verbinden XML-Elemente mit anderen XML-Elementen
Deklaration durch xlink:href="URI"
URI-Angaben können XPointer-Ausdrücke enthalten
es gibt einfache (xlink:type="simple") und erweiterte (xlink:type="extended") XLinks
erweiterte XLinks verknüpfen mehr als zwei Quellen
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 513
aus: http://graphics.cs.uni-sbxlink:href="URI".de/
XML→Struktur von XML-Dokumenten kann durch DTDs
festgelegt werden
→Ausdrucksfähigkeit von DTDs jedoch eingeschränkt
keine spezifischen Datentypen (nur CDATA)
nur wenige Strukturierungs-möglichkeitendurch Unterelemente
kaum Integritätsbedingngen angebbar
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 514
XML→XML-Schema
Sprache zur Modellierung strukturierter Informationen
beschreibt durch Schemasprache
• Datentypen
• Dokumente
• Dokument-Gruppen
Alternative zu DTDs
Elementinhalte können typisiert und wiederverwendet werden
erlaubt Wertebereichseinschränkungen und Kardinalitätsangaben
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 515
<simpleType name="PriorityType"><restriction base="positiveInteger">
<minInclusive value="100"/><maxInclusive value="999"/>
</restriction></simpleType>
XML→zahlreiche bereitgestellte Datentypen, u.a.
xsd:string, xsd:decimal, xsd:integer, xsd:float, xsd:boolean, xsd:date, xsd:time(xsd: Namensraum von XML-Schema)
→Konstruktion von Datentypen durch
Basistyp mit Einschränkungen
• Längenangaben, Muster, Aufzählungen, Bereiche
Listen- und Vereinigungentypen
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 516
<!-- Objektartnamen in ALKIS-Betsandsdatenauszuegen --><!-- duerfen nur bestimmte Zeichen beinhalten --><xsd:simpleType name="ObjektartName">
<xsd:restriction base="xsd:string"><xsd:pattern value="A[XP]_[a-zA-Z0-9_]+"/>
</xsd:restriction></xsd:simpleType>
XML→komplexe Elementtyp-Deklaration möglich
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 517
aus: [EE04]
XML→Beispiel für komplexe Elementtyp-Deklaration
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 518
<element name="Signaturen"><complexType>
<sequence><element name="Signatur" minOccurs="1" maxOccurs="unbounded">
<complexType><choice>
<element name="FlaechenSignatur" type="loc:SigFlaeche"/><element name="LinienSignatur" type="loc:SigLinie"/><element name="SymbolSignatur" type="loc:SigSymbol"/><element name="SchriftSignatur" type="loc:SigSchrift"/>
</choice><attribute name="Nr" type="loc:SigNrType" use="required"/><attribute name="Typ" type="loc:SigTypType" use="required"/><attribute name="Darstellungsprioritaet" type="loc:PrioType"use="required"/><unique name="uniqueSigNr"><selector xpath="."/><field xpath="@Nr"/></unique>
</complexType></element>
</sequence></complexType>
</element>
XML→Beispiel für ein Elementtyp-Exemplar
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 519
<Signaturen>...
<Signatur Nr="4286" Typ="Schrift" Darstellungsprioritaet="380"><SchriftSignatur>
<Bezeichnung>Schriftformat F K 28 blau</Bezeichnung><SchriftStyle>
<Schriftart>Arial</Schriftart><Schriftstil>Fett, Kursiv</Schriftstil><Schriftgrad>28 pt</Schriftgrad><Schriftfarbe>
<Farbgrundton>Blau</Farbgrundton><Cyan>100</Cyan><Magenta>0</Magenta><Yellow>0</Yellow><Black>20</Black>
</Schriftfarbe></SchriftStyle><Effekt>Grossbuchstaben</Effekt>
</SchriftSignatur></Signatur>
...
</Signaturen>
XML→Definition von Schlüsseln und Fremdschlüsseln
möglich
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 520
aus: [EE04]
XML→zahlreiche Sprachmittel zur Unterstützung von
Wiederverwendung, u.a.
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 521
Element- und Attributgruppen
Erweiterung und Einschränkung komplexer Typen
abstrakte Ele-mente und Typen
Neudefinition von Typen und Gruppen
Substitutionsgruppenaus: http://www.opengeospatial.org/
6.3 GML→Geography Markup Language
→per XML (und XML-Schema) erzeugte Auszeichnungssprache (Anwendung von XML)
→zum Austausch von Geoobjekten (im Geo/OGC-Kontext “Features” genannt)
→festgelegt vom Open Geospatial Consortium mit dem ISO TC 211
→definiert zahlreiche Konstrukte zur Modellierung eigener Geo-Anwendungswelten, darunter
Objekte (Features) und Geometrien
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 522
GML→aktuelle GMLSpezifikation des OGC (Version 3.0)
hat ca. 550 Seiten
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 523
aus: http://www.opengeospatial.org/
GML→die grundlegenden Elemente und Datentypen
sind in 33 XML-Schema-Dokumenten (Basisschemata) definiert
→konkrete Anwendung wird davon abgeleitet
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 524
aus: [SX08]
GML→zentrale Klasse ist der abstrakte Featuretyp
“All specific feature types defined in application schemas must be derived from AbstractFeatureType”
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 525
<complexType name="AbstractFeatureType" abstract="true"><complexContent>
<extension base="gml:AbstractGMLType"><sequence>
<element ref="gml:boundedBy" minOccurs="0"/><element ref="gml:location" minOccurs="0"/><!-- additional properties must be specified in an application schema -->
</sequence><attribute name="fid" type="string"></attribute>
</extension></complexContent>
</complexType>
GML→bereitgestellt werden u.a. die Geometrien der
“Simple Features”
typischerweise 2-dimensionale Geometrien mit geraden Linien
darunter Punkte, Linien, Polygone
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 526
GML→Definition des Polygon-Typs
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 527
<complexType name="PolygonType"><complexContent>
<extension base="gml:AbstractGeometryType"><sequence>
<element name="outerBoundaryIs"><complexType>
<sequence><element ref="gml:LinearRing"/></sequence></complexType>
</element><element name="innerBoundaryIs" minOccurs="0" maxOccurs="unbounded">
<complexType><sequence><element ref="gml:LinearRing"/></sequence>
</complexType></element>
</sequence></extension>
</complexContent></complexType>
GML→Definition eines eigenen Feature-Typs
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 528
<complexType name="SeeTyp"><complexContent>
<extension base="gml:AbstractFeatureType"><sequence>
<element name="seeName" type="string"/><element name="maxTiefe" type="integer"/><element name="flaeche" type="decimal"/><element ref="gml:extentOf"/>
</sequence></extension>
</complexContent></complexType>
GML→AFIS-ALKIS-ATKIS Schema der AdV
ist ein (sehr umfangreiches) Beispiel einer GML-konformen Modellierung einer Geo-Anwendungswelt
→besteht aus Basisschema (enthält gemeinsame Basisklassen von Geoobjekten)
→und Fachschemata (enthalten sämtliche Objektklassen für die im Vermessungswesen vorkommenden Informationen)
→im Bereich ALKIS über 220 Objektarten mit zahlreichen Beziehungstypen
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 529
aus: http://www.adv-online.de/
GML→hier nur sehr kleiner Ausschnitt: Schema einer
Objektklasse “AX_Gebaeude” (vereinfacht)
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 530
<element name="AX_Gebaeude"/><complexType name="AX_GebaeudeType">
<complexContent><extension base="adv:AG_ObjektType">
<sequence><element name="gebaeudefunktion"
type="adv:AX_GebaeudefunktionType"/><element maxOccurs="unbounded" minOccurs="0"
name="weitereGebaeudefunktion"type="adv:AX_Weitere_GebaeudefunktionType"/>
<element maxOccurs="unbounded" minOccurs="0"name="name" type="string"/>
<element maxOccurs="unbounded" minOccurs="0" name="nutzung"type="adv:AX_Nutzung_GebaeudePropertyType"/>
<element minOccurs="0" name="bauweise"type="adv:AX_Bauweise_GebaeudeType"/>
GML
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 531
<element minOccurs="0" name="anzahlDerOberirdischenGeschosse" type="integer"/>
<element minOccurs="0" name="anzahlDerUnterirdischenGeschosse"type="integer"/>
<element minOccurs="0" name="hochhaus" type="boolean"/><element minOccurs="0" name="objekthoehe" type="gml:LengthType"/><element minOccurs="0" name="dachform" type="adv:AX_DachformType"/><element minOccurs="0" name="zustand"
type="adv: AX_Zustand_GebaeudeType"/><element minOccurs="0" name="geschossflaeche" type="gml:AreaType"/><element minOccurs="0" name="grundflaeche" type="gml:AreaType"/><element minOccurs="0" name="umbauterRaum" type="gml:VolumeType"/><element maxOccurs="unbounded" minOccurs="0"
name="baujahr" type="integer"/><element minOccurs="0" name="lageZurErdoberflaeche"
type="adv:AX_LageZurErdoberflaeche_GebaeudeType"/><element minOccurs="0" name="dachart" type="string"/><element minOccurs="0" name="dachgeschossausbau"
type="adv:AX_Dachgeschossausbau_GebaeudeType"/>
GML
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 532
<element minOccurs="0" name="gebaeudekennzeichen"type="string"/>
<element maxOccurs="unbounded" minOccurs="0"name="zeigtAuf" type="gml:ReferenceType">
</element><element maxOccurs="unbounded" minOccurs="0"
name="gehoert" type="gml:ReferenceType"></element><element minOccurs="0" name="gehoertZu"
type="gml:ReferenceType"></element><element maxOccurs="unbounded" minOccurs="0"
name="haengtZusammenMit" type="gml:ReferenceType"></element>
</sequence></extension>
</complexContent></complexType>
GMLein Exemplar der Objektklasse “AX_Gebaeude”
(vereinfacht)
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 533
<AX_Gebaeude gml:id="DEHHSERV00001FN1">...
<position><gml:Polygon>
<gml:exterior><gml:Ring>
<gml:pos>3567807.047 5930017.550</gml:pos><gml:pos>3567810.850 5930024.755</gml:pos><gml:pos>3567810.850 5930024.755</gml:pos>
...
<gml:pos>3567807.047 5930017.550</gml:pos></gml:Ring>
</gml:exterior></gml:Polygon>
</position><gebaeudefunktion>2000</gebaeudefunktion><weitereGebaeudefunktion>1170</weitereGebaeudefunktion><bauweise>2100</bauweise><anzahlDerOberirdischenGeschosse>1</anzahlDerOberirdischenGeschosse><anzahlDerUnterirdischenGeschosse>1</anzahlDerUnterirdischenGeschosse><dachform>3100</dachform>
</AX_Gebaeude>
"position":geerbtvon KlasseAG_ObjektType
GML→GML dient (auch) zum Austausch von Geo-
objekten
→dazu wurde der Web Feature Service (WFS) definiert
web-gestützter Zugriff auf Daten “eines verteilten GIS”
ausgetauscht werden ausschließlich Vektordaten
Anfragen werden als HTTP-Request von Client an WFS gesendet
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 534
GMLWFS bietet u.a. folgende Operationen
• GetCapabilities
• GetFeature
• DescribeFeatureType
• Transaction
• LockFeature
→GetCapabilities
beschreibt die ver-fügbaren Dienste des WFS
gibt Namen der vor-handenen Feature-Typen an
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 535
aus: http://www.htw-dresden.de/
GML→DescribeFeatureType
beschreibt das Schema eines Featuretyps
→GetFeature
liefert ein Feature-Exemplar zurück
unterstützt räumliche und nichträumliche Selektionen
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 536
<wfs:Query typeName="AX_Gebaeude"><ogc:Filter>
<ogc:PropertyIsEqualTo><ogc:PropertyName>weitereGebaeudefunktion</ogc:PropertyName><ogc:Literal>1170</ogc:Literal>
</ogc:PropertyIsEqualTo></ogc:Filter>
</wfs:Query>
6.4 XSLT→Extensible Stylesheet Language
for Transformation
→Programmiersprache zur Transformation von XML-Dokumenten
→berechnungsuniversell
→baut auf Baumstruktur von XML-Dokumenten auf
→dient zur Definition von Umwandlungsregeln
→ist eine deklarative und funktionale Programmier-sprache
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 537
XSLT→XSLT-Programme (XSLT-Stylesheets) sind selbst
XML-Dokumente
→Stylesheets werden von XSLT-Prozessoren einge-lesen und aufgrund der enthaltenden Regeln werden XML-Dokumente in Ausgabedokumente umgewandelt
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 538
XSLT→eine Transformation besteht aus Transforma-
tionsregeln (Templates) mit folgender Struktur
ein auf XPath basierendes Muster (Pattern)
Anweisungen zur Konstruktion des Zielbaumes
→Muster identifizieren Knoten des Quellbaumes
→Anweisungen erzeugen aus diesen Knoten Teile des Zielbaumes
→Rahmen einer Transformation (XSLT-Stylesheet)
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 539
<?xml version="1.0" encoding="ISO-8859-1"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"><xsl:output method="xml" /><!--REGELN--></xsl:stylesheet>
XSLT→wichtigstes Konstrukt ist das
Template (Transformationsregel) <xsl:template match="..."> ...Anweisungen... </xsl:template>
→sind mehrere Trans-formationsregeln anwendbar, wird die spezifischste angewendet
→innerhalb eines Templates zahlreiche Anweisungen möglich
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 540aus: http://data2type.de/xml/
XSLT→<xsl:apply-templates
select = ... mode = ...> ... mögliche Angabe von Parametern... </xsl:apply-templates>
zur expliziten Anwendung (Aufruf) von Templates
in Select-Attribut Angabe eines XPath-Ausdruck
damit Auswahl des zu bearbeitenden Knotens
wird kein Select-Argument angegeben, werden alle direkten Kinder-Knoten bearbeitet
per Mode-Parameter weitere Knoten-Auswahl
falls kein Template anwendbar ist, implizite RegelSpatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 541
XSLT→implizite Template-Regel
durchwandern aller Kinder-Knoten und für jeden erneutes implizites Aufrufen von <xsl:apply-templates>
→<xsl:value-of select = .../>
erzeugt eine Zeichenkette an der aktuellen Position im Ausgabebaum
Zeichenkette kann Inhalt eines Knotens oder einer definierten Variablen sein
Select-Attribut wählt Knoten, Variable oder Para-meter aus, dessen Wert verwendet werden soll
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 542
XSLT→<xsl:for-each select = ...>
...Anweisungen... </xsl:for-each>
Iterationsanweisung innerhalb einer Template-Definition
alle Anweisungen innerhalb dieser Anweisung werden auf alle spezifizierten Knoten angewendet
Select-Attribut wählt Knoten aus
→<xsl:text>
erzeugt statischen Text im Ergebnisbaum
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 543
XSLT→<xsl:choose>
Rahmen für Sequenz von Abfragen <xsl:when test = ...> ...Anweisungen... </xsl:when>
Abfragen werden abge-schlossen mit <xsl:otherwise>
ausgewählt wird Abfrage, deren Bedingung als erste zutrifft
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 544
→<xsl:if test = ...>...Anweisungen... </xsl:if>
bedingte Ausführung von Anweisungen
Test-Attribut enthält Bedingung
XSLT→zur Illustration: Ausschnitt aus “xslt.xsd” zur
Beschreibung von “choose”
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 545
<complexType name="choose" content="elementOnly"><element name="when" type="xsl:conditional-template"
maxOccurs="unbounded"/><element name="otherwise" type="xsl:template-with-space"
minOccurs="0"/></complexType>
<complexType name="conditional-template" base="xsl:template-with-space"derivedBy="extension">
<attribute name="test" type="xsl:expr"/></complexType>
<complexType name="template-with-space" base="xsl:template"derivedBy="extension">
<attribute ref="xml:space"/></complexType>
XSLT→Beispiel zur Anwendung von XSLT
Transformation von XML-konformen Auszügen des “Digitalen Geländemodells” (DLM25) in TK25-ähnliche Graphiken (vgl. Abschnitt 3.2)
hier: Ableitungsregel für Gemeinde-straßen (werden als weiße Linien mit schmaler violetter Begrenzung gezeichnet)
Template durchsucht Datenbestand nach Gemeindestraßen und generiert Zeichenbefehle
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 546
XSLT→eine (ziemlich kurze) Straße im Datenbestand
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 547
<AtkisMember><Strasse>
<gml:name>Badstrasse</gml:name><AtkisOID>86118065</AtkisOID><gml:centerLineOf>
<gml:coord><gml:X>4437952.980</gml:X><gml:Y>5331812.550</gml:Y></gml:coord><gml:coord><gml:X>4437960.070</gml:X><gml:Y>5331818.450</gml:Y></gml:coord><gml:coord><gml:X>4437967.200</gml:X><gml:Y>5331825.410</gml:Y></gml:coord>
</gml:centerLineOf><Attribute>
<Zustand>in Betrieb</Zustand><AnzahlDerFahrstreifen Bedeutung="tatsaechliche Anzahl">2</AnzahlDerFahrstreifen><Funktion>Strassenverkehr</Funktion><VerkehrsbedeutungInneroertlich>Anliegerverkehr</VerkehrsbedeutungInneroertlich><BreiteDerFahrbahn>Keine Zuweisung</BreiteDerFahrbahn><Widmung>Gemeindestrasse</Widmung><InternationaleBedeutung>Attribut trifft nicht zu</InternationaleBedeutung><VerkehrsbedeutungUeberoertlich>Attribut trifft nicht zu</VerkehrsbedeutungUeberuertlich>
</Attribute></Strasse>
</AtkisMember>
XSLT→Suche nach Gemeindestraßen
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 548
<xsl:templatematch="/dlm:AtkisModell/dlm:AtkisMember/dlm:Strasse">
<xsl:if test="contains(dlm:Attribute/dlm:Widmung,’Gemeindestrasse’)or contains(dlm:Attribute/dlm:Widmung,’Sonstiges’)">
<xsl:call-template name="DrawPath"><xsl:with-param name="styleclass"
select="linieNebenstrasseNahverkehrVordergrund"></xsl:call-template>
</xsl:if></xsl:template>
<AtkisMember><Strasse>
<gml:name>Badstrasse</gml:name><AtkisOID>86118065</AtkisOID><gml:centerLineOf>
<gml:coord><gml:X>4437952.980</gml:X><gml:Y>5331812.550</gml:Y></gml:coord>
<gml:coord><gml:X>4437960.070</gml:X><gml:Y>5331818.450</gml:Y></gml:coord>
XSLT→Generierung linienförmiger Signaturen
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 549
<xsl:template name="DrawPath"><xsl:param name="styleclass"/><svg:path><xsl:attribute name="class">
<xsl:value-of select="$styleclass"/></xsl:attribute><xsl:attribute name="d">
<xsl:for-eachselect="gml:centerLineOf/gml:coord">
<xsl:choose><xsl:when test="position() = 1">
<xsl:text>M </xsl:text><xsl:call-template name="getX"/><xsl:text> </xsl:text><xsl:call-template name="getY"/><xsl:text> L </xsl:text>
</xsl:when><xsl:otherwise>
<xsl:call-template name="getX"/><xsl:text> </xsl:text>
<xsl:call-template name="getY"/><xsl:if test="position() != last()">
<xsl:text> </xsl:text></xsl:if>
</xsl:otherwise></xsl:choose>
</xsl:for-each></xsl:attribute>
</svg:path></xsl:template>
<AtkisMember><Strasse>
<gml:name>Badstrasse</gml:name><AtkisOID>86118065</AtkisOID><gml:centerLineOf>
<gml:coord><gml:X>4437952.980</gml:X><gml:Y>5331812.550</gml:Y>
</gml:coord><gml:coord><gml:X>4437960.070</gml:X>
<gml:Y>5331818.450</gml:Y></gml:coord>
XSLT→Templates “getX” und “getY” lesen X- und Y-
Koordinaten, transformieren und schreiben sie an die aktuelle Stelle im Ausgabebaum
→Styleklasse“linieNebenstrasseNahverkehrVordergrund”:
→im Beispiel generierte Linie (SVG-Anweisung):
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 550
.linieNebenstrasseNahverkehrVordergrund{ fill: none; stroke-width: 8.5px;stroke: snow; stroke-linejoin: round}
<path class="linieNebenstrasseNahverkehrVordergrund"d="M 8245.97 -2142.98
L 8253.65 -2146.15 8259.83 -2151.12"/>
6.5 SVG→Scalable Vector Graphics (SVG)
→XML-basierte Sprache zur Beschreibung zweidimen-sionaler, beliebig skalierbare Vektorgrafiken
→Standard des W3C
→neben statischen Graphiken auch Interaktionen, Animationen und Filteranwendungen möglich
→SVG-Dateien relativ klein und mit jedem Texteditor bearbeitbar
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 551
SVG→SVG-Dokument strukturiert wie XML-Dokument
Prolog mit XML-Deklaration und Dokument-Typ-Deklaration
Wurzelelement, u.a. mit
• Deklaration von Namensräumen und
• Definitionsbereich (auch für SVG-fremden Code)
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 552
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width= "42.0cm" height= "29.7cm viewBox= "99269.744 150779.44 42000.0 29700.0"
xmlns:xlink= "http://www.w3.org/1999/xlink"><defs>
<style type="text/css">.SN2028LinieFlurstueck
{fill: none; stroke-width: 35; stroke-linecap: butt; stroke-linejoin: miter; stroke: #000000;}...
</style>...
</defs>...
</svg>
SVG→Attribute “width” und “height” legen Breite und
Höhe von gesamter Graphik fest, z.B. width= "42.0cm" height= "29.7cm" (DIN A3 quer)
→optionales Attribut “viewBox” definiert Bezugs-rahmen, angegeben wird linker unterer Punkt und Breite sowie Höhe, z.B. viewBox="99269.744 150779.44 42000.0 29700.0" Beispiel definiert Bereich für Liegenschaftskarten-ausschnitt in Zusammenhang mit A3 Querformat, angestrebtem Maßstab 1:1000 und (transformier-ten) Koordinaten (eine Einheit entspricht 1 mm)
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 553
SVG→zahlreiche SVG-Elemente und -Attribute, u.a.
Linie zwischen 2 Punkten (line)
Linie zwischen mehreren Punkten (polyline)
Rechteck (rect)
Kreis (circle)
Ellipse (ellipse)
Polygon (polygon)
Pfad (path)
Text (text)
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 554
<svg width="70" height="40"><rect x="5" y="5"
width="50" height="25"style="stroke: blue; fill: none;">
</svg>
SVG→alle Rechteck-Attribute
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 555
<!ATTLIST %SVG.rect.qname;%SVG.Core.attrib;%SVG.Conditional.attrib;%SVG.Style.attrib;%SVG.Paint.attrib;%SVG.Color.attrib;%SVG.Opacity.attrib;%SVG.Graphics.attrib;%SVG.Clip.attrib;%SVG.Mask.attrib;%SVG.Filter.attrib;%SVG.GraphicalEvents.attrib;%SVG.Cursor.attrib;%SVG.External.attrib;x %Coordinate.datatype; #IMPLIEDy %Coordinate.datatype; #IMPLIEDwidth %Length.datatype; #REQUIREDheight %Length.datatype; #REQUIREDrx %Length.datatype; #IMPLIEDry %Length.datatype; #IMPLIEDtransform %TransformList.datatype; #IMPLIED
>
SVG→Kreis-Beispiel (mit Gruppierungsanweisung und
Transformation)
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 556
<g style="fill-opacity:0.7;stroke:black;stroke-width:0.1cm;">
<circle cx="6cm" cy="2cm" r="100"style="fill:red;"transform="translate(0,50)"/>
<circle cx="6cm" cy="2cm" r="100"style="fill:blue;"transform="translate(70,150)"/>
<circle cx="6cm" cy="2cm" r="100"style="fill:green;"transform="translate(-70,150)"/>
</g>
aus: http://luxor-xul.sourceforge.net/
SVG→Pfad-Anweisung “path” für komplexe Formen,
Linien, Flächen
Element hat u.a. Attribut “d” zur Angabe der Punkte des Pfades
Angabe beinhaltet weitere Kommandos zur Interpretation der Punkte
Punkt kann z.B. Beginn oder das Ende einer Kurve oder einer Linie sein
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 557
<path id="SN4100_einzelsignaturNadelholz"d="M 130 0 L -50 0 0 -180 50 0"fill="none" stroke-miterlimit="20"stroke-linejoin="miter"stroke-width="12" stroke="&baumgrün;"/>
SVG→Kommandos der Path-Anweisung
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 558
Kommando Beschreibung Beispiel
M (MoveTo) Setzt den aktuellen Punkt fest, von dem aus der Pfad startet. M20 50
Z (ClosePath) Erstellt eine geschlossene Form. Z
L (LineTo) Zeichnet eine Linie vom aktuellen zum angegebenen Punkt. L50 100
H (Horizontal LineTo) Zeichnet vom aktuellen Punkt aus eine horizontale Linie. H75
V (Vertical LineTo) Zeichnet vom aktuellen Punkt aus eine vertikale Linie. V40
C (CurveTo) Zeichnet vom aktuellen Punkt aus eine Bézier-Kurve. C30 0 50 20 60 15
S (Shorthand/ Smooth CurveTo)
Ähnlich dem Kommando C, jedoch wird hier als erster Kontrollpunkt der letzte aus der direkt zuvor festgelegten Bézier-Kurve verwendet.
S40 0 60 0
Q (Quadratic Bézier CurveTo)
Zeichnet eine quadratische Bézier-Kurve. Q40 0 60 20
T (Shorthand/ Smooth Quadratic Bézier CurveTo)
Ähnlich dem Kommando Q, jedoch wird hier als erster Kontrollpunkt der letzte aus der direkt zuvor festgelegten quadratischen Bézier-Kurve verwendet.
T1000 300
A (Elliptical Arc) Zeichnet vom aktuellen Punkt aus einen elliptischen Bogen. A25 25 -30 0 1 50 -25
SVG→Pfad-Beispiel (mit quadratischer Bezier-Kurve)
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 559
<path fill="none"stroke-width="3"stroke="green"d="M 20 20 l 0 -13M 16 20 q 0 -10 -5 -10M 12 20 q 0 -6 -4 -6M 24 20 q 0 -10 5 -10M 28 20 q 0 -6 4 -6"id="Pflanzensymbol"/>
SVG→Pfad-Beispiel (mit Gruppierungsanweisung und
gefüllten Flächen)
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 560
<g id="SN3338SymbolApotheke"><!-- Prioritaet 350 --><path d="M -250.0 250.0 L -250.0 -250.0 250.0 -250.0 250.0 250.0 Z"
fill= "#FFFFFF"/><path d="M -200.0 145.0 L -118.0 88.0 -94.0 97.0 -94.0 72.0 -148.0 72.0
-148.0 -27.0 -94.0 -27.0 -94.0 -152.0 33.0 -200.0 161.0 -134.0161.0 80.0 200.0 115.0 132.0 200.0 62.0 150.0 62.0 72.0 0.072.0 0.0 150.0 -73.0 200.0 Z"
fill= "#FF0000"/><path d="M 0.0 -27.0 L 0.0 -119.0 62.0
-95.0 62.0 -27.0 Z"fill= "#FFFFFF"/>
</g>
SVG→Text-Anweisung “text” zum Platzieren von Texten
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 561
aus: [SX08]
in SVG Text nicht nur als graphisches Element, sondern als Text-Element vorhanden
zahlreiche Attribute, u.a. “x” und “y” zur Positionierung
Texte können verscho-ben und gedreht werden
Laufrichtung, Ausrichtung, Schriftdehnung u.a. kann spezifiziert werden
SVG→Text-Beispiel
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 562
<defs><style type="text/css">
<![CDATA[text {font-family:verdana,sans-serif; font-size:40px; font-weight:bold;}
]]></style>
</defs>
<circle cx="150" cy="100" r="90"style="fill:none; stroke:black;" />
<!-- mehrere Werte fr x und y --><text class="big" x="110,135,160" y="70,110,150">
SVG</text>
<!-- Verwendung von dx und dy --><text class="big" x="110,135,160" y="70,110,150" dx="-10,-10,-10" style="fill:red;">
SVG</text>
aus: http://svg.tutorial.aptico.de/
SVG→Gruppierungs-Anweisung “g” zum Zusammen-
fassen von Elementen
Attribute gruppierter Elemente können gemeinsam festgelegt werden, z.B. Style-Attribute
Gruppen können benannt werden
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 563
<g style="fill-opacity:0.7; stroke:black; stroke-width:0.1cm;"><circle cx="6cm" cy="2cm" r="100" style="fill:red;"
transform="translate(0,50)"/><circle cx="6cm" cy="2cm" r="100" style="fill:blue;"
transform="translate(70,150)"/><circle cx="6cm" cy="2cm" r="100" style="fill:green;"
transform="translate(-70,150)"/></g>
<g id="SN3338SymbolApotheke"><path d="M -250.0 250.0 L -250.0 ... Z" fill= "#FFFFFF"/><path d="M -200.0 145.0 L -118.0 ... Z" fill= "#FF0000"/><path d="M 0.0 -27.0 L 0.0 ... Z" fill= "#FFFFFF"/>
</g>
SVGes können auch verschiedene Elemente gruppiert werden
→per “use”-Element wird eine Instanz eines benannten Elementes (z.B. einer Gruppe) erzeugt
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 564
<use transform="translate(135463.0,173871.7)"xlink:href="#SN3309SymbolParkhausParkdeck"/>
<g id="SN3309SymbolParkhausParkdeck"><path d="M-250.0 310.0 L -250.0 -190.0 0.0
-310.0 250.0 -190.0 250.0 310.0 Z"fill= "#00FFFF"/>
<text font-family= "Arial" font-weight= "bold"font-size= "420" stroke= "#FFFFFF"fill= "#FFFFFF" x= "-130.0" y="150.0">P
</text></g>
SVG→SVG mit der Sprache Cascading Style Sheets (CSS)
kombinierbar
→CSS ist eine deklarative “Stylesheet-Sprache” für strukturierte Dokumente
hauptsächlich aus dem HTML-Umfeld bekannt
trotz Namensähnlichkeit sind “Extensible Stylesheet Language for Transformation” (XSLT) und “Cascading Style Sheets” (CSS) ziemlich unterschiedlich
• XSLT ist eine XML-basierte Sprache zur Transformation von XML-Dokumenten in andere (XML-)Dokumente
• CSS ist eine nicht XML-basierte Sprache zur Formulierung von Formatierungsanweisungen für “Dokument-Browser”
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 565
SVG→ein CSS-Stylesheet besteht aus Regeln der Form
Selektor {Eigenschaft: Wert; ... Eigenschaft: Wert;}
Selektor spezifiziert Element, für das Eigenschaften mit Werten belegt werden sollen
Auswahlkriterien sind
• Merkmale der Elemente (Typ, Klasse, ID, Attributwerte)
• strukturelle Eigenschaften
Auswahlkriterien lassen sich kombinieren
meist einfache Auswahl über Elementnamen und selbstdefinierte Styleklassen ausreichend
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 566
SVGmit selbstdefinierten Styleklassen kann ein Element mehrfach dargestellt werden; z.B. eine Gemeindestraße als breitere violette und als schmalere weiße Linie
→Beispiel für Auswahl über Elementnamen
→Beispiele für selbstdefinierte Styleklassen
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 567
text {font-family:verdana,sans-serif; font-size:40px; font-weight:bold;}
.linieNebenstrasseNahverkehrHintergrund{fill: none; stroke-width: 12.75px;stroke: darkmagenta; stroke-linejoin: round}
.linieNebenstrasseNahverkehrVordergrund{fill: none; stroke-width: 8.5px;stroke: snow; stroke-linejoin: round}
SVG→insgesamt hat typisches SVG-Dokument, das eine
Karte darstellt, folgende Struktur
Prolog mit XML-Deklaration und Dokument-Typ-Deklaration
Wurzelelement mit
• Deklaration von Namensräumen
• Definitionsbereich mit
Styleklassen
benannten Elementen
• Elementen zum eigentlichen Zeichen der Karte mit Benutzung der definierten Styles und Elemente
→Styleklassen und benannte Elemente sind die umgesetzten Signaturen der jeweiligen Kartenart
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 568
SVG→Beispiel (sehr stark gekürzt)
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 569
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width= "42.0cm" height= "29.7cm"viewBox= "99269.744 150779.44 42000.0 29700.0"xmlns:xlink= "http://www.w3.org/1999/xlink">
<defs><style type="text/css">
.SN1301FlaecheWohnenallgemein {fill: #999999;}
.SN1309FlaecheGemeinwesenallgemein {fill: #FF7F7F;}
.SN1409FlaecheAckerland {fill: #FFF7BF;}
.SN2028LinieFlurstueck {fill: none; stroke-width: 35; stroke-linecap: butt;stroke-linejoin: miter; stroke: #000000;}
...</style>
<g id="SN3020SymbolGrenzpunktmitAbmarkungMarke"><circle cx="0" cy="0" r="75" fill= "#FFFFFF" stroke-width= "18"
stroke-linecap= "round" stroke-linejoin= "round" stroke= "#000000"/></g>
SVG
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 570
<g id="SN3309SymbolParkhausParkdeck"><path d="M-250.0 310.0 L -250.0 -190.0 0.0 -310.0 250.0 -190.0 250.0 310.0 Z"
fill= "#00FFFF"/><text font-family= "Arial" font-weight= "bold" font-size= "420" stroke= "#FFFFFF"
fill= "#FFFFFF" x= "-130.0" y="150.0">P</text></g>
<g id="SN3316SymbolKirche"><path fill="none" stroke= "#000000" stroke-width= "70" stroke-linecap= "butt"
d="M0.0 -500.0 L 0.0 500.0"/><path fill="none" stroke= "#000000" stroke-width= "70" stroke-linecap= "butt"
d="M-275.0 -200.0 L 275.0 -200.0"/></g>...</defs>
<path class="SN1409FlaecheAckerland"d="M 163075.2 162043.4 193983.3 169300.5 196449.4 173480.0 201844.9
171788.3 200268.2 167276.0 196772.8 167241.7 193983.3 169300.5 193983.3169300.5 163075.2 162043.4 180931.8 156813.0 198895.6 151572.3 205497.2173730.9 190894.4 178027.0 169761.8 184244.2 161165.2 186773.1 154540.8164531.3 163075.2 162043.4 "/>
SVG
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 571
<path class="SN1409FlaecheAckerland"d="M 112772.7 139268.2 112934.5 139406.2 113087.4 139715.5 113531.4
140613.7 104510.2 143777.2 103810.2 142604.2 103646.0 142327.2 102996.0141231.1 102813.9 140923.9 98637.4 133876.7 99265.6 133322.3 108291.3131097.1 112772.7 139268.2 "/>
<path class="SN1301FlaecheWohnenallgemein"d="M 123960.0 147432.9 123875.2 147163.4 122999.8 147406.8 122680.8
146334.3 122686.9 146332.5 122616.2 146075.2 122926.8 145975.6 123002.2146237.2 123310.1 146144.1 123237.3 145886.1 123471.4 145816.4 123542.1146074.0 124228.2 145866.6 124631.9 147223.8 123960.0 147432.9 "/>
<path class="SN1301FlaecheWohnenallgemein"d="M 111499.7 163673.7 111580.0 163524.5 111707.0 163590.7 111631.4
163745.8 111905.0 163895.8 111655.2 164349.4 111873.9 164464.9 111710.9164754.3 111500.5 164630.4 111191.9 165190.8 110611.5 166280.3 109119.7165473.0 109718.5 164381.2 110533.8 164829.2 111254.6 163539.4 111499.7163673.7 "/>
<text class="SN4070SchriftSchriftformatN7380" x="101771.7" y="152661.6"transform="rotate(298, 101771.7, 152661.6)" style="text-anchor:middle">7</text>
<text class="SN4070SchriftSchriftformatN7380" x="113491.7" y="184701.6"transform="rotate(75, 113491.7, 184701.6)" style="text-anchor:middle">20</text>
SVG
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 572
<path class="SN2028LinieFlurstueck"d="M 97500.0 134345.8 95762.3 131470.5 92887.4 126769.8 90013.4 121943.5
89040.0 120309.0 88213.4 119028.2 87314.6 117817.5 86282.6 116686.285167.5 115675.6 83887.6 114900.7 82581.0 114250.4 81131.0 113720.879689.9 113374.2 78183.7 113099.9 65450.8 111336.0 61192.8 110781.861420.6 109817.6 61513.5 109503.0 78351.9 111810.4 80055.0 112168.381678.6 112597.7 83280.9 113148.8 84486.0 113778.0 86267.9 114767.488137.0 116437.9 90324.1 120113.6 97702.1 132411.4 98275.1 133309.098637.4 133876.7 102813.9 140923.9 102996.0 141231.1 103646.0 142327.2103810.2 142604.2 104510.2 143777.2 106326.4 146820.5 106914.1 147108.1105217.3 147925.1 105352.9 147327.1 105247.1 147169.2 105188.5 146773.1103512.5 144002.9 103400.2 144083.4 102172.1 142076.9 97500.0 134345.8"/>
<text class="SN4111SchriftSchriftformatK10700" x="89451.7" y="78291.6"> 44/1</text>
<use transform="translate(44745.6,213153.9)"xlink:href="#SN3020SymbolGrenzpunktmitAbmarkungMarke"/>
<use transform="translate(42021.4,192419.5)"xlink:href="#SN3020SymbolGrenzpunktmitAbmarkungMarke"/>
...
</svg>
6.6 Zusammenfassung→Normen und Standards
International Organization for Standardization (ISO)
ISO/TC 211 Geographic information/Geomatics
Open Geospatial Consortium (OGC)
Zusammenarbeit ISO/TC 211 mit OGC
Arbeitsgemeinschaft der Vermessungsverwaltungen der Länder der Bundesrepublik Deutschland (AdV)
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 573
Zusammenfassung→XML
Standard zum Datenaustausch im Web
Elemente, Attribute, Entities
Namensräume, XPath, XPointer, XLink
XML-Schema
Datentypen, Elemente
→GML
abstrakter Featuretyp
Definition eines eigenen Feature-Typs
AFIS-ALKIS-ATKIS Schema der AdV
Web Feature Service
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009 574
Zusammenfassung→XSLT
Transformationsregeln (Templates)
Anweisungen innerhalb eines Templates
Beispiel zur Anwendung von XSLT (Transformation von Teilen des DLM25)
→SVG
Rechteck
Kreis
Pfad
Text
Gruppierung
CSS
SVG-Karten-Beispiel
575Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009
Zusammenfassung
576
GIS
Objekte
ThematikGeometrie
Vektor
erfassen
verwalten analy-sieren
präsentieren
XSLT
Spatial Databases und GISe, Kap.6 / K.N., S.T. / SomSem 2009
SVG
GML
XML