Centroids without Location and Coordinates should no longer be allowed. I also think that WSG84 always must be present
ue71603 opened this issue · 5 comments
The issue with Centroid, it is allowed to to be nothing, so we must make LocationStructure mandatory:
<xsd:complexType name="SimplePoint_VersionStructure" abstract="false">
<xsd:annotation>
<xsd:documentation>Type for a Simple POINT.</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="EntityInVersionStructure">
<xsd:sequence>
<xsd:element name="Name" type="MultilingualString" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Name of POINT.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Location" type="LocationStructure" minOccurs="0">
<xsd:annotation>
<xsd:documentation>The position of a POINT with a reference to a given LOCATING SYSTEM (e. g. coordinates).</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
...and then, the location structure specifies Latitude/Longitude and gml:Pos, but we don't specify that either of them is mandatory. And my guess is, this is done because we don't want a choice here (both must be able to be provided). And we don't have any way to assert that any of them is provided.
<xsd:complexType name="LocationStructure">
<xsd:annotation>
<xsd:documentation>Type for geospatial Position of a point. May be expressed in concrete WGS 84 Coordinates or any gml compatible point coordinates format.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:sequence>
<xsd:sequence minOccurs="0">
<xsd:annotation>
<xsd:documentation>WGS84</xsd:documentation>
</xsd:annotation>
<xsd:element name="Longitude" type="LongitudeType">
<xsd:annotation>
<xsd:documentation>Longitude from Greenwich Meridian. -180 (East) to +180 (West). Decimal degrees. e.g. 2.356</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Latitude" type="LatitudeType">
<xsd:annotation>
<xsd:documentation>Latitude from equator. -90 (South) to +90 (North). Decimal degrees. e.g. 56.356</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Altitude" type="AltitudeType" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Altitude (metres) Above sea level.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:element ref="gml:pos" minOccurs="0"/>
</xsd:sequence>
<xsd:element name="Precision" type="DistanceType" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Precision for point measurement. In meters.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:normalizedString">
<xsd:annotation>
<xsd:documentation>Identifier of point.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="srsName" type="SrsNameType">
<xsd:annotation>
<xsd:documentation>identifier of data Reference system for geocodes if point is specified as gml compatible Coordinates. A gml value. If not specified taken from system configuration.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
WGS84 is well know, but most device now use Galileo in EU, and the reference is Galileo Terrestrial Reference Frame (GTRF), ITRF2005
So making WGS84 mandatory may not be the best option for the future
LOL! I leave it at that.
Make WGS84 in EPIP/Profile ?
Make on Location (WGS or GML:Pos) mandatory at minimum (and both is also fine)
Discussion to be continued ...