Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

GML implements the semantics of ISO 19107. As such, the semantics for an angle encoded in GML is given by ISO 19107

clause:

"In this variant of Bearing usually used for 2D coordinate systems, the first angle (azimuth) is measured from the first coordinate axis (usually north) in a counterclockwise fashion parallel to the reference surface tangent plane."

...

Example A: CRS urn:ogc:def:crs:OGC:1.3:CRS84 has long/lat axis order. Because the orientation of the axes on the earth surface is the same as that of the first_axis (=x) / second_axis (=y) coordinate system assumed by ISO 19107, angle values increase in counter-clockwise direction. Thus, if the start angle of an ArcByCenterPoint in this CRS is smaller than its end angle, then the direction of the arc is counter-clockwise; otherwise it is clockwise.

Example B: CRS urn:ogc:def:crs:EPSG::4326 has lat/long axis order. Even though the axes have the same orientation on the earth surface as in example A, the axis order of the coordinate system is different. In the EPSG:4326 CRS, the "counter-clockwise" convention from ISO 19107 actually corresponds to a clockwise rotation, because the first_axis (=x) / second_axis (=y) coordinate system assumed by ISO 19107 is mirrored (reflected) through the x=y diagonal when transposing the coordinate system used by EPSG:4326 on the surface of the Earth. Because of this, if the start angle of an ArcByCenterPoint in EPSG:4326 is smaller than its end angle, then the direction of the arc on the earth surface is clockwise; otherwise it is counter-clockwise.

...

The according ArcByCenterPoint would look like the following (with start and end angles as used in the examples):

Code Block
languagexml
linenumberstrue
collapsetrue
<gml:ArcByCenterPoint numArc="1">
	<gml:pointProperty>
 		<gml:Point gml:id="ID1">
 			<gml:pos>0 0</gml:pos>
 		</gml:Point>
 	</gml:pointProperty>
 	<gml:radius uom="m">1</gml:radius>
 	<gml:startAngle uom="deg">actual_start_value</gml:startAngle>
	 <gml:endAngle uom="deg">actual_end_value</gml:endAngle>
 </gml:ArcByCenterPoint>

...

Therefore, it is recommended to interpolate ArcByCentrePoint through points situated at equal geodesic distance (the radius of the arc) from the arc centre. This makes the interpolation independent of the CRS used.

...