This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
An interface on connections to support protocols which allow users to publish their current geographical location, and subscribe to the current location of their contacts.
This interface is geared strongly towards automatic propagation and use of this information, so focuses on latitude, longitude and altitude which can be determined by GPS, although provision is also included for an optional human-readable description of locations. All co-ordinate information is required to be relative to the WGS84 datum.
The information published through this interface is intended to have the same scope as presence information, so will normally be made available to those individuals on the user's "publish" contact list. Even so, user interfaces should not automatically publish location information without the consent of the user, and it is recommended that an option is made available to reduce the accuracy of the reported information to allow the user to maintain their privacy.
Location information is represented using the terminology of XMPP's XEP-0080 or the XEP-0080-derived Geoclue API where possible.
Clients of this interface SHOULD register an interest in it by calling
Civic addresses are represented by the following well-known keys (all of which have string values), which should be kept in sync with those used in XEP-0080 and in the Geoclue project:
The following address keys are defined in XEP-0080 but not by Geoclue, and are also allowed:
Since the previous strings have data intended to be read by users, the language used should be stated using:
Positions are represented by the following well-known keys:
Velocities are represented by the following well-known keys:
Other well-known keys:
Return the current locations of the given contacts, if they are
already known. If any of the given contacts' locations are not known,
request their current locations, but return immediately without waiting
for a reply; if a reply with a non-empty location is later received
for those contacts, the
This method is appropriate for "lazy" location finding, for instance displaying the location (if available) of everyone in your contact list.
For backwards compatibility, if this method is called by a client
whose "interest count" for this interface, as defined by
Can_Set
flag will not be set in
Connected
, but MUST remain constant thereafter.
The same mapping that would be returned by
For backwards compatibility, if contact attributes that include
this interface are requested
by a client whose "interest count" for this interface, as defined by