As explained in the previous sections, a latitude/longitude position is in general coded as a gml:pos element (when used in a Point) or as a token of two numerical values in a gml:posList (when used in the definition of a Curve). There are special situations in the aeronautical data when the latitude/longitude position is derived from the position of another feature or when it is necessary to code additional information such as a different accuracy or srsName from the rest of the points of a Curve. In these situations, GML offers the possibility to use a gml:pointProperty instead of a gml:pos element.
Note that the pointProperty allows either referring to another gml:Point (by xlink:href) or providing a gml:Point child element.
According to the GML standard chapter 10 :
A property that has a point as its value domain may either be an appropriate geometry element encapsulated in an element of this type or an XLink reference to a remote geometry element (where remote includes geometry elements located elsewhere in the same document). Either the reference or the contained element shall be given, but neither both nor none.
In this case, a gml:pointProperty is used in order to provide a free text note for a position that is part of a Curve (which may also be a Surface boundary). It actually has a child aixm:Point element with an annotation (aixm:Note). This encoding has the advantage that the geometry is self-contained (the position of the referenced object is directly copied as a gml:pos element).
This method should be used whenever the data is intended “for human consumption”. For example, when a temporary area is established for an aerial show:
AIR DISPLAY WILL TAKE PLACE WI LATERAL LIMITS: 521107.80N 0051229.88E - 521221.96N 0051715.00E - 521120.76.00N - 0051755.68E - 521008.76N 0051755.68E (VILLAGE JAKOVO) - 521107.80N 0051229.88E
In this example, an annotation is necessary in order to indicate a reference to a geographical feaure ("Village Jakovo")
A coding example is provided below:
Reference to another feature
When necessary to preserve as a true reference the information that the current position depends on the location of another aeronautical feature, then a gml:PointProperty with a xlink:href attribute can be used. In this case, there shall be no child gml:Point/gml:pos element.
The GML standard requires a local reference, using a gml:id value.
Local reference to gml:Point (or equivalent)
In the example below, the position of the Navaid is used as centre for the circle that defines the horizontal geometry of the Airspace.
This solution is appropriate when the data is provided for direct consumption by a GML tool for display or other calculation purpose. Obviously, it requires that both the Airspace and the referenced feature (Navaid, DesignatedPoint, etc.) are included in the same file.
Note also that the xlink:title attribute is used to provide a human readable identification of the Navaid that is referred, which can be used in printed documents.
This solution does not imply the persistence of the gml:id value. It is still a temporary identifier, which enables linking the gml:PointProperty with the gml:Point or one of its allowed substitutions (aixm:Point, aixm:ElevatedPoint) inside the file.
This direct link between gml:PointProperty and gml:Point is a deviation from the general AIXM principle of having xlink:href associations towards the feature level only. However, this direct association with the gml:Point property of the aixm:Navaid is the only solution identified for really encoding geometry dependencies at the GML level. In a source/target database, the association can still be towards the Navaid itself. Only for data export/import purpose the reference would be towards the gml:Point directly.
In conclusion, there are two options for encoding point references in AIXM/GML:
- as a simple annotation
- as a local concrete xlink:href reference using gml:id
The most appropriate one depends on the intended usage of the data. Therefore, AIXM applications should offer the client the possibility to specify how such references should be exported: to be preserved or be replaced with copies of gml:Point elements, eventually including the reference as an annotation.