Title: TOP10NL GML prototype
1TOP10NL GML prototype
- 2nd GML Relay, 13-12-2002
- Marian de Vries
21st GML Relay 12 June 20012 participants
IONIC Software
Laser-Scan
Maybe too early !
3Why this 2nd Relay
- 1,5 year later
- more companies have invested in GML
- .. but GML is still not mainstream
- data barrier problem not yet solved
- (GIS) users want transparent data exchange
4(No Transcript)
5Overview
- TOP10Vector project
- GML why
- GML how
- TOP10NL GML prototype
6TOP10Vector project
- Started in 2000
- Project cooperation
- Topografische Dienst ( Dutch NMA)
- Center for Geo Information Wageningen
- ITC Enschede
- Geodesy dept. TU Delft
- User groups
7TOP10Vector project
- Dutch topographic data originally
- old goal map making
- lines, points and label-points (annotiation
symbols), implicit polygons - no unique ids
- no feature info, only classification code
(TDN-code)
8TOP10Vector project
- User groups asked for
- more object-oriented data model
- also non-spatial attributes (names, road type, )
- metadata
- history / temporal queries
- easy aggregation (thematic, geometry)
- unique id --gt linking with other data
9(No Transcript)
10TOP10Vector project
- Additional goal
- conformance to standards OpenGIS, ISO, CEN
- Why?
- mif, e00, dxf, SQLLoad files vendor specific
- NEN 1878 Dutch, not international
11Overview
- TOP10Vector project
- GML why
- GML how
- TOP10NL GML prototype
12GML Geography Markup Language
- Has XML as technical format
- content between begin and end tags
- supported by non-GIS tools
- XML eXtensible
- has XML Schema as data definition language
13GML XML
ltPolygon srsNamehttp//www.opengis.net/gml/srs/e
psg.xml2393gt ltouterBoundaryIsgt
ltLinearRinggt ltcoordinatesgt
3586549.54,6790984.34 3586598.23,6790924.09
3586649.23,6790952.23 3586549.54,6790984.34
lt/coordinatesgt lt/LinearRinggt
lt/outerBoundaryIsgt ltinnerBoundaryIsgt
lt/innerBoundaryIsgt lt/Polygongt
14Dutch NEN 1878 fixed position
15GML fits TOP10 renewal wishes
- Is open standard (of OpenGIS Consortium, in
cooperation with ISO) - Is based on object oriented data model
- features with spatial non-spatial properties,
unique ids - data oriented, not map oriented
16GML 2.1 geometry model
Point LineString LinearRing Polygon MultiPoint Mul
tiLineString MultiPolygon Box
17Basic GML element tree
FeatureCollection featureMember
Feature nonSpatialProperty
nonSpatialProperty
geometryProperty Geometry
(Polygon, LineString, Point etc.)
geometryProperty Geometry
(Polygon, LineString, Point etc.)
nonSpatialProperty
18TOP10NL GML data example
lttdnWegDeel fid"TOP10.402814"gt
lttdntop10_idgt2400001lt/tdntop10_idgt
lttdnbronRef xlinktype"simple"
xlinkhref"metadata.xmlTOP10.9000017"/gt
lttdnobject_begindatumgt2001-12-17T1324100200lt/
tdnobject_begindatumgt ...
lttdntoegankelijkheidgtOpenbaarlt/tdntoegankelijkhe
idgt lttdnstatusgtIn gebruiklt/tdnstatusgt
ltgmlpolygonPropertygt ltgmlPolygon
srsName"EPSG28992"gt ... lt/gmlPolygongt
lt/gmlpolygonPropertygt ltgmlgeometryPropertygt
ltgmlLineString srsName"EPSG28992"gt
ltgmlcoordinatesgt 106045.396,449000
105965.228,448967.705 105619.713,448827.507
lt/gmlcoordinatesgt lt/gmlLineStringgt
lt/gmlgeometryPropertygt lttdnwegtypegtAutosnel
weglt/tdnwegtypegt lttdnhoofdverkeersgebruikgtSne
lverkeerlt/tdnhoofdverkeersgebruikgt ...
lttdnwegnummergtA12lt/tdnwegnummergt
lttdnwegnummergtE25lt/tdnwegnummergt
lttdnwegnummergtE30lt/tdnwegnummergt lt/tdnWegDeelgt
19GML implementations
- First implementor
- Ordnance Survey Master Map
- Runners-up
- Germany (NorthRhine Westphalia)
- American Census Bureau (TIGER/Line)
- Dutch Topographic Service (TDN)
- Scandinavia, France, ...
- Both online (OGC WFS) and offline
20GML ! ready-to-use format
- you have to design your own data model
- organisation or domain specific, e.g.
- for topographic data
- for cadastral data
- for environmental data
- each in their own namespace ...
21GML spec. class repository
(abstract) types
gmlAbstractFeatureCollectionType gmlFeatureAssoc
iationType gmlAbstractFeatureType gmlGeometryPr
opertyType gmlAbstractGeometry
element names
gmlpolygonProperty gmllineStringProperty
... gmlPolygon gmlPoint ... gmlcoordinates gml
Box
22From conceptual data model
23 to technical GML model
24 to GML .xsd schema
lt!--
Type definition of
Top10ObjectType ( inherited and extended by
all
TOP10 feature types)
--gt
ltcomplexType name"Top10ObjectType"
abstract"true"gt ltcomplexContentgt
ltextension base"gmlAbstractFeatureType"gt
ltsequencegt ltelement
name"top10_id" type"integer"/gt
ltelement ref"tdnbronRef"/gt
ltgroup ref"tdnTemporeel"/gt
ltelement name"dimensie" type"tdndimensie"/gt
ltelement name"tdncode"
type"integer"/gt lt/sequencegt
lt/extensiongt lt/complexContentgt
lt/complexTypegt
25Reuse of classes in GML spec.
lt!--
Type definition of
Top10ObjectType ( inherited and extended by
all
TOP10 feature types)
--gt
ltcomplexType name"Top10ObjectType"
abstract"true"gt ltcomplexContentgt
ltextension base"gmlAbstractFeatureType"gt
ltsequencegt ltelement
name"top10_id" type"integer"/gt
ltelement ref"tdnbronRef"/gt
ltgroup ref"tdnTemporeel"/gt
ltelement name"dimensie" type"tdndimensie"/gt
ltelement name"tdncode"
type"integer"/gt lt/sequencegt
lt/extensiongt lt/complexContentgt
lt/complexTypegt
gmlAbstractFeatureCollectionType gmlFeatureAssoc
iationType gmlAbstractFeatureType gmlGeometryPr
opertyType gmlAbstractGeometry
gmlpolygonProperty gmllineStringProperty
... gmlPolygon gmlPoint ... gmlcoordinates gml
Box
26Overview
- TOP10Vector project
- GML why
- GML how
- TOP10NL GML prototype
27TOP10NL GML prototype
- 10 Feature types
- WegDeel, WaterDeel, SpoorbaanDeel, Terrein
complete cover of surface - Gebouw
- InrichtingsElement
- 4 Gebieden ( Admin. Areas) feature types
- 7 Feature collections
28TOP10NL GML prototype
- Some characteristics
- feature types with more than 1 geometry
- mixed geometries
- use of Xlink/XPointer
- cardinality (multiplicity) of properties
- ...
29Infrastructure types have 2 geometries
ltcomplexType name"InfrastructuurType"
abstract"true"gt ltcomplexContentgt
ltextension base"tdnTop10ObjectType"gt
ltsequencegt ltelement name"type"
type .../gt ltelement
name"toegankelijkheid" type /gt
ltelement name"status" type"tdnstatus"/gt
ltelement ref"gmlpolygonProperty"/gt
ltelement ref"gmlgeometryProperty"/gt
lt/sequencegt lt/extensiongt
lt/complexContentgt lt/complexTypegt
Road, Railway, Water inherit from this type
30Intersection polygon point, same id
31Metadata per object -gt XLink/XPointer
lttdnWaterDeel fid"TOP10.101221"gt
lttdntop10_idgt6100001lt/tdntop10_idgt
lttdnbronRef xlinkhref"metadata.xmlTOP10.900001
7"/gt
lttdnBron id"TOP10.9000017"gt
lttdnbron_idgt9000017lt/tdnbron_idgt
lttdnbrontypegtGeïnterpreteerde luchtfotolt/tdnbron
typegt lttdnbronbeschrijvinggtOrthogonale
luchtfoto, vlieghoogte ca 3800 meter schaal
118000lt/tdnbronbeschrijvinggt
lttdnbronactualiteitgt1998lt/tdnbronactualiteitgt
lttdnbronnauwkeurigheidgt5 meterlt/tdnbronnauwkeur
igheidgt lt/tdnBrongt
32More than 1 value -gt more than 1 element
lttdnWegDeel fid"TOP10.150044"gt
lttdntop10_idgt2105003lt/tdntop10_idgt
lttdnbronRef xlinktype"simple xlinkhref
.../gt lttdnontstaan_uitgt6100004lt/tdnontstaan_u
itgt lttdnontstaan_uitgt2100012lt/tdnontstaan_uit
gt lttdnontstaan_uitgt5100212lt/tdnontstaan_uitgt
history in data originated_from property
33Example 2 WegNummer (RoadNo.)
34Null value --gt no element
lttdnWegDeel fid"TOP10.101784"gt
lttdntop10_idgt2110084lt/tdntop10_idgt
lttdnbronRef xlinktype"simple" xlinkhref
.../gt lttdnontstaan_uitgtlt/tdnontstaan_uitgt
lttdnobject_begindatumgt2001-12-11T1138150200
lt/tdnobject_begindatumgt ...
Leave empty element out
35Processing GML
- Three strategies
- write data specific software (e.g. Ordnance
Survey GML importers) - offer core compliance / only support standard
GML geometry names and data types - try to write generic software -gt parse .xsd
schema first
36And now the 2nd Relay
- Will they succeed ?
- Which strategy did they choose ?
- What dangers will they encounter ...
37 lt/complexTypegt ltelement name"Gebouw"
type"tdnGebouwType" substitutionGroup"gml
_Feature"/gt ltcomplexType name"GebouwType"gt
ltcomplexContentgt ltextension
base"tdnTop10ObjectType"gt
ltsequencegt ltelement name"type"
type"tdntypeGebouw"/gt ltelement
name"functie" type"tdnfunctieGebouw"/gt
ltelement name"hoogteklasse"
type"tdnhoogteklasse"/gt ltelement
name"hoogte" type"tdnnumeriekOnb"/gt
ltelement name"status" type"tdnstatus"/gt
ltelement ref"gmlgeometryProperty"/gt
ltelement name"hoogteniveau"
type"integer" minOccurs"0"/gt
ltelement name"naam" type"string"
minOccurs"0"/gt lt/sequencegt
lt/extensiongt lt/complexContentgt
lt/complexTypegt lt!--
Declarations for InrichtingsElementen ( one of
the themes)