GEOPRIV Presence Information Data Format Location Object (PIDF-LO) Usage Clarification, Considerations, and Recommendations
updated by
- rfc-7459 — Representation of Uncertainty and Confidence in the Presence Information Data Format Location Object (PIDF-LO)
updates
- rfc-4119 — A Presence-based GEOPRIV Location Object Format
Extracted elements (30)
The 130 km maximum distance between adjacent polygon vertices is imposed to avoid significant errors that can arise from potential geodesic interpolation by implementations that treat polygon edges as straight lines in a curved coordinate system.
The 15-point polygon vertex limit for real-time routing applications was chosen to align with limits already imposed by 3GPP (TS 23.032) and OMA MLP, enabling interoperability with cellular and mobile location protocols while still allowing moderately complex shapes.
The gml:coordinates element from RFC 4119 examples is deprecated because its coordinates format is opaque and allows the same location to be expressed in multiple non-equivalent ways, making consistent parsing difficult; the GeoShape profile provides unambiguous representations.
The Ellipse and Circle shapes MUST be specified using a 2D CRS; a point with uncertainty in three dimensions must use the Sphere shape type, as the orientation of a circle cannot be correctly specified in 3D using these representations.
The geodetic examples in RFC 4119 use the deprecated <gml:location>/<gml:coordinates> elements, which have been superseded in GML 3.1 and beyond. New applications SHOULD use the GeoShape profile with gml:pos instead to ensure consistent parsing.
Where multiple PIDF documents can be sent together (e.g., in a multi-part MIME body) and current location is required, document selection SHOULD be based on document order with the first document considered first.
A <geopriv> element MUST describe a discrete location — a single place, point, area, or volume in which a Target can be found.
All eight GeoShape types (Point, Polygon, Circle, Ellipse, Arc Band, Sphere, Ellipsoid, Prism) MUST be implemented by applications involved in location-based routing.
Angular measures MUST use either degrees (identified by URN urn:ogc:def:uom:EPSG::9102) or radians (URN urn:ogc:def:uom:EPSG::9101). Bearings are measured clockwise from WGS84 Northing, not magnetic north.
Implementations MUST specify the CRS using the srsName attribute on the outermost geometry element; the CRS MUST NOT be respecified or changed for any sub-elements. The srsDimension attribute SHOULD be omitted.
It is RECOMMENDED that uncertainty is expressed at a confidence of 95% or higher to enable better interoperability of uncertainty values.
Polygon shapes SHOULD be restricted to a maximum of 15 points (16 including the repeated closing point) when the location information is intended for use in real-time applications such as location-dependent routing.
Polygons MUST be defined with the upward normal pointing up, accomplished by defining vertices in a counter-clockwise direction. Points in a 3D polygon MUST all have the same altitude.
Providing more than one <geopriv> element in a single PIDF document MUST only be done if the locations refer to the same place, or are placed into different element types (tuple, device, person).
The height of a Prism MUST be a positive value; the prism base polygon's first and last points must be the same (closed ring).
The length between adjacent polygon vertices SHOULD be restricted to a maximum of 130 km to avoid significant errors from geodesic interpolation. A connecting line SHALL NOT cross another connecting line of the same polygon.
WGS84 is mandated as the coordinate reference system: EPSG 4326 (URN urn:ogc:def:crs:EPSG::4326) for 2D shapes and EPSG 4979 (URN urn:ogc:def:crs:EPSG::4979) for 3D volumes; distances and heights use EPSG 9001 (meters).
When providing more than one location chunk in a single <location-info> element, the locations MUST be provided by a common source at the same time and by the same location determination method.
Where a compound location is provided in a single <location-info> element, the coarse location information MUST be provided first (e.g., geodetic area before civic floor element).
Where a PIDF document contains more than one <geopriv> element, priority of interpretation is given to the first <device> element containing a location; if absent, the first <tuple>; locations in <person> elements SHOULD only be used as a last resort.
A 'compound location' is a composite of both civic and geodetic information within a single <location-info> element — for example, a geodetic polygon describing a building perimeter combined with a civic element indicating the floor.
A PIDF-LO document may contain an arbitrary number of <tuple>, <device>, and <person> elements, each holding a <status> element that may contain one or more <geopriv> children; each <geopriv> must contain at least <location-info> and <usage-rules>.
The Arc Band shape represents a cellular sector using gs:ArcBand with center point, gs:innerRadius, gs:outerRadius, gs:startAngle (from north), and gs:openingAngle. The center point is not included in the enclosed area.
The Circle shape represents a 2D uncertainty area using gs:Circle with a gml:pos center point and a gs:radius in meters (EPSG 9001); it MUST use a 2D CRS. For 3D uncertainty, the Sphere shape type should be used instead.
The Ellipse shape represents a 2D uncertainty area defined by a center point (gml:pos), gs:semiMajorAxis, gs:semiMinorAxis (both in meters), and gs:orientation (degrees from Northing to Easting). It MUST use a 2D CRS.
The Ellipsoid shape (3D, EPSG 4979) describes a volume around a center point using gs:semiMajorAxis, gs:semiMinorAxis, gs:verticalAxis (all in meters), and gs:orientation (degrees from north); commonly produced by GPS systems.
The GeoShape specification defines eight shape types mandatory for implementation: Point (2D/3D), Polygon (2D), Circle (2D), Ellipse (2D), Arc Band (2D), Sphere (3D), Ellipsoid (3D), and Prism (3D).
The Prism shape extrudes a 2D polygon base (all base points at the same altitude in 3D CRS EPSG 4979) by a gs:height value in meters, suitable for representing a floor range or section of a building.
The primary security considerations for PIDF-LO relate to how location information is conveyed and used, which are outside the scope of this document. This document only specifies which elements MUST or SHOULD be implemented for location-dependent routing.
Coordinate and measure numerical values are expressed using the XML Schema 'double' lexical representation; leading and trailing zeros past the decimal are not significant (e.g., '03.07500' equals '3.075'). Both gml:pos (per-vertex) and gml:posList (compact) forms are permitted for polygon coordinates.