User Tools

Site Tools


lib:impexp:start

Import/Export CRS-Definition

Die CrsTools-Definitionen können über eine Import-Datei erweitert werden. In dieser Datei können alle Typen

  • Ellipsoide
  • Map-Projektionen
  • Prime-Meridian
  • Cartesian Coordinate System (axis)
  • CRS-System
  • 3D-Transformation

definiert werden. Übernommen wird diese Datei nur im Ganzen, wenn alle Daten in sich und zueinander konsistent sowie vollständig sind. Hierdurch ist gewährleistet, dass CrsTools immer konsistent ist. Fehler beim Importieren können in einer LOG-Datei protokolliert werden. Um den gesamten Inhalt zu dokumentieren, steht eine Export-Funktion (Print) zur Verfügung.

Einzelne Einträge (Items) können hinzugefügt (create), gelöscht (delete) oder verändert werden (update). Dies wird über das Mode-Attribute gesteuert:

Mode Name Beschreibung
c Create (Default) Neues Item. Darf alt noch nicht vorhanden sein
d Delete Vorhandenes Item löschen (Muss vorhanden sein!)
u Update Vorhandenes Item verändern (Muss vorhandend sein!)

Für das Databinding ist unter 'resouce' eine XSD-Datei beigefügt, mit der die Klassen generiert werden können:

<?xml version="1.0" encoding="UTF-8"?>
<!-- von Karl-Heinz Steffens (GOSplus) bearbeitet -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
   <xs:attribute name="epsg" type="xs:short"/>
   <xs:attribute name="mode">
    <xs:simpleType>
     <xs:restriction base="xs:string">
      <xs:enumeration value="c"/>
      <xs:enumeration value="d"/>
      <xs:enumeration value="u"/>
     </xs:restriction>
    </xs:simpleType>
   </xs:attribute>
   <xs:element name="crs_tools">
    <xs:complexType>
     <xs:sequence>
      <xs:element name="crs_def_list" type="crs_def_list"/>
      <xs:element name="ellipsoid_list" type="ellipsoid_list"/>
      <xs:element name="map_projection_list" type="map_projection_list"/>
      <xs:element name="prime_meridian_list" type="prime_meridian_list"/>
      <xs:element name="cart_coord_system_list" type="cart_coord_system_list"/>
      <xs:element name="trans3d_list" type="trans3d_list"/>
     </xs:sequence>
    </xs:complexType>
   </xs:element>
   <xs:complexType name="crs_def_list">
    <xs:sequence>
     <xs:element name="crs_def" type="crs_def" maxOccurs="unbounded"/>
    </xs:sequence>
   </xs:complexType>
   <xs:complexType name="crs_def">
    <xs:sequence>
     <xs:element name="cart_coord_systemt" type="xs:int"/>
     <xs:element name="ellipsoid" type="xs:int"/>
     <xs:element name="map_projection" type="xs:int"/>
     <xs:element name="prime_meridian" type="xs:int"/>
     <xs:element name="ellipsoid" type="xs:int"/>
     <xs:element name="proj_conv" type="xs:int"/>
     <xs:element name="desc" type="xs:string" minOccurs="0"/>
    </xs:sequence>
    <xs:attribute ref="epsg" use="required"/>
    <xs:attribute ref="mode" use="optional"/>
   </xs:complexType>
   <xs:complexType name="ellipsoid_list">
    <xs:sequence>
     <xs:element name="ellipsoid" type="ellipsoid" maxOccurs="unbounded"/>
    </xs:sequence>
   </xs:complexType>
   <xs:complexType name="ellipsoid">
    <xs:sequence>
     <xs:element name="equator_radius" type="xs:decimal"/>
     <xs:element name="pole_radius" type="xs:decimal"/>
     <xs:element name="reciproc_flattening" type="xs:decimal"/>
     <xs:element name="desc" type="xs:string" minOccurs="0"/>
    </xs:sequence>
    <xs:attribute ref="epsg" use="required"/>
    <xs:attribute ref="mode" use="optional"/>
   </xs:complexType>
   <xs:complexType name="map_projection_list">
    <xs:sequence>
     <xs:element name="map_projection" type="map_projection" maxOccurs="unbounded"/>
    </xs:sequence>
   </xs:complexType>
   <xs:complexType name="map_projection">
    <xs:sequence>
     <xs:element name="bound_east" type="xs:decimal"/>
     <xs:element name="bound_south" type="xs:decimal"/>
     <xs:element name="bound_west" type="xs:decimal"/>
     <xs:element name="bound_north" type="xs:decimal"/>
     <xs:element name="lat_origin" type="xs:decimal"/>
     <xs:element name="lon_origin" type="xs:decimal"/>
     <xs:element name="false_easting" type="xs:decimal"/>
     <xs:element name="false_northing" type="xs:decimal"/>
     <xs:element name="azimuth" type="xs:decimal"/>
     <xs:element name="skew" type="xs:decimal"/>
     <xs:element name="scalse" type="xs:decimal"/>
     <xs:element name="desc" type="xs:string" minOccurs="0"/>
    </xs:sequence>
    <xs:attribute ref="epsg" use="required"/>
    <xs:attribute ref="mode" use="optional"/>
   </xs:complexType>
   <xs:complexType name="prime_meridian_list">
    <xs:sequence>
     <xs:element name="prime_meridian" type="prime_meridian" maxOccurs="unbounded"/>
    </xs:sequence>
   </xs:complexType>
   <xs:complexType name="prime_meridian">
    <xs:sequence>
     <xs:element name="lon" type="xs:decimal"/>
     <xs:element name="desc" type="xs:string" minOccurs="0"/>
    </xs:sequence>
    <xs:attribute ref="epsg" use="required"/>
    <xs:attribute ref="mode" use="optional"/>
   </xs:complexType>
   <xs:complexType name="cart_coord_system_list">
    <xs:sequence>
     <xs:element name="cart_coord_system" type="cart_coord_system" maxOccurs="unbounded"/>
    </xs:sequence>
   </xs:complexType>
   <xs:complexType name="cart_coord_system">
    <xs:sequence minOccurs="0">
     <xs:element name="name_first_axis"/>
     <xs:element name="abbr_first_axis"/>
     <xs:element name="name_sec_axis"/>
     <xs:element name="abbr_sec_axis"/>
     <xs:element name="desc"/>
    </xs:sequence>
    <xs:attribute ref="epsg" use="required"/>
    <xs:attribute ref="mode" use="optional"/>
   </xs:complexType>
   <xs:complexType name="trans3d_list">
    <xs:sequence>
     <xs:element name="trans3d" type="trans3d" maxOccurs="unbounded"/>
    </xs:sequence>
   </xs:complexType>
   <xs:complexType name="trans3d">
    <xs:all minOccurs="0">
     <xs:element name="crs_src_epsg" type="xs:int"/>
     <xs:element name="crs_trg_epsg" type="xs:int"/>
     <xs:element name="trans_epsg" type="xs:int"/>
     <xs:element name="accuracy" type="xs:decimal"/>
     <xs:element name="bound_west" type="xs:decimal"/>
     <xs:element name="bound_east" type="xs:decimal"/>
     <xs:element name="bound_south" type="xs:decimal"/>
     <xs:element name="bound_north" type="xs:decimal"/>
     <xs:element name="is_reversible" type="xs:boolean"/>
     <xs:element name="desc" type="xs:string"/>
     <xs:element name="op8605" type="xs:decimal" minOccurs="0"/>
     <xs:element name="op8606" type="xs:decimal" minOccurs="0"/>
     <xs:element name="op8607" type="xs:decimal" minOccurs="0"/>
     <xs:element name="op8608" type="xs:decimal" minOccurs="0"/>
     <xs:element name="op8609" type="xs:decimal" minOccurs="0"/>
     <xs:element name="op8610" type="xs:decimal" minOccurs="0"/>
     <xs:element name="op8611" type="xs:decimal" minOccurs="0"/>
     <xs:element name="op8617" type="xs:decimal" minOccurs="0"/>
     <xs:element name="op8618" type="xs:decimal" minOccurs="0"/>
     <xs:element name="op8667" type="xs:decimal" minOccurs="0"/>
    </xs:all>
    <xs:attribute ref="epsg" use="required"/>
    <xs:attribute ref="mode" use="optional"/>
   </xs:complexType>
</xs:schema>
lib/impexp/start.txt · Last modified: 2023/07/03 18:26 by 127.0.0.1