back to j2megame.org

JSR-179 Location API for J2ME v1.0.1

This document defines the JSR-179 Location API for the Java 2 Platform, Micro Edition (J2METM) version 1.0.1.

See:
          Description

Packages
javax.microedition.location The javax.microedition.location package contains the basic classes needed to request and get a location result.

 

This document defines the JSR-179 Location API for the Java 2 Platform, Micro Edition (J2METM) version 1.0.1.

Copyright Notice and Disclaimers

JSR-179 Location API for J2ME Specification ("Specification")
Version: 1.0.1
Status: Maintenance Release / Final Release 2
Specification Lead: Nokia Corporation ("Specification Lead")
Release: 2006-02-23

Copyright 2003-2006 Nokia Corporation
All rights reserved.

NOTICE; LIMITED LICENSE GRANTS

Specification Lead hereby grants You a fully-paid, non-exclusive, non-transferable, worldwide, limited license (without the right to sublicense), under the Specification Lead's applicable intellectual property rights to view, download, use and reproduce the Specification only for the purpose of internal evaluation, which shall be understood to include developing applications intended to run on an implementation of the Specification provided that such applications do not themselves implement any portion(s) of the Specification. The Specification contains proprietary information of the Specification Lead and may only be used in accordance with the license terms set forth herein.

Subject to the reciprocity requirement set forth below Specification Lead also grants You a perpetual, non-exclusive, worldwide, fully paid-up, royalty free, irrevocable limited license (without the right to sublicense) under any applicable copyrights or patent rights it may have in the Specification to create and/or distribute an Independent Implementation of the Specification that: (a) fully implements the Specification without modifying, subsetting or extending the public class or interface declarations whose names begin with “java” or “javax” or their equivalents in any subsequent naming convention adopted by Specification Lead through the Java Community Process, or any recognized successors or replacements thereof; (b) implement all required interfaces and functionality of the Specification; (c) only include as part of such Independent Implementation the packages, classes or methods specified by the Specification; (d) pass the technology compatibility kit ("TCK") for such Specification; and (e) are designed to operate on a Java platform which is certified to pass the complete TCK for such Java platform. For the purpose of this agreement the applicable patent rights shall mean any claims for which there is no technically feasible way of avoiding infringement in the course of implementing the Specification. Other than this limited license, You acquire no right, license, title or interest in or to the Specification or any other intellectual property rights of the Specification Lead.

You need not include limitations (a)-(e) from the previous paragraph or any other particular "pass through" requirements in any license You grant concerning the use of Your Independent Implementation or products derived from it. However, except with respect to implementations of the Specification (and products derived from them) by Your licensee that satisfy limitations (a)-(e) from the previous paragraph, You may neither: (i) grant or otherwise pass through to Your licensees any licenses under Specification Lead's applicable intellectual property rights; nor (ii) authorize Your licensees to make any claims concerning their implementation's compliance with the Specification in question.

The license provisions concerning the grant of licenses hereunder shall be subject to reciprocity requirement so that Specification Lead's grant of licenses shall not be effective as to You if, with respect to the Specification licensed hereunder, You (on behalf of yourself and any party for which You are authorized to act with respect to this Agreement) do not make available, in fact and practice, to Specification Lead and to other licensees of Specification on fair, reasonable and non-discriminatory terms a perpetual, irrevocable, non-exclusive, non-transferable, worldwide license under such Your (and such party's for which You are authorized to act with respect to this Agreement) patent rights which are or would be infringed by all technically feasible implementations of the Specification to develop, distribute and use an Independent Implementation of the Specification within the scope of the licenses granted above by Specification Lead. However, You shall not be required to grant a license:

1.     to a licensee not willing to grant a reciprocal license under its patent rights to You and to any other party seeking such a license with respect to the enforcement of such licensee's patent claims where there is no technically feasible alternative that would avoid the infringement of such claims;

2.     with respect to any portion of any product and any combinations thereof the sole purpose or function of which is not required in order to be fully compliant with the Specification; or

3.     with respect to technology that is not required for developing, distributing and using an Independent Implementation.

Furthermore, You hereby grant a non-exclusive, worldwide, royalty-free, perpetual and irrevocable covenant to Specification Lead that You shall not bring a suit before any court or administrative agency or otherwise assert a claim that the Specification Lead has, in the course of performing its responsibilities as the Specification Lead under JCP process rules, induced any other entity to infringe Your patent rights.

For the purposes of this Agreement: "Independent Implementation" shall mean an implementation of the Specification that neither derives from the reference implementation to the Specification ("Reference Implementation") source code or binary code materials nor, except with an appropriate and separate license from licensor of the Reference Implementation, includes any of Reference Implementation's source code or binary code materials.

This Agreement will terminate immediately without notice from Specification Lead if You fail to comply with any material provision of or act outside the scope of the licenses granted above.

TRADEMARKS

Nokia is a registered trademark of Nokia Corporation. Nokia Corporation 's product names are either trademarks or registered trademarks of Nokia Corporation Your access to this Specification should not be construed as granting, by implication, estoppel or otherwise, any license or right to use any marks appearing in the Specification without the prior written consent of Nokia Corporation or Nokia's licensors.

No right, title, or interest in or to any trademarks, service marks, or trade names of Sun or Sun's licensors, is granted hereunder. Sun, Sun Microsystems, the Sun logo, Java, J2ME, and the Java Coffee Cup logo are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries.

DISCLAIMER OF WARRANTIES

THE SPECIFICATION IS PROVIDED "AS IS". SPECIFICATION LEAD MAKES NO REPRESENTATIONS OR WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT, THAT THE CONTENTS OF THE SPECIFICATION ARE SUITABLE FOR ANY PURPOSE OR THAT ANY PRACTICE OR IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADE SECRETS OR OTHER RIGHTS. This document does not represent any commitment to release or implement any portion of the Specification in any product.

THE SPECIFICATION COULD INCLUDE TECHNICAL INACCURACIES OR TYPOGRAPHICAL ERRORS. CHANGES ARE PERIODICALLY ADDED TO THE INFORMATION THEREIN; THESE CHANGES WILL BE INCORPORATED INTO NEW VERSIONS OF THE SPECIFICATION, IF ANY. SPECIFICATION LEAD MAY MAKE IMPROVEMENTS AND/OR CHANGES TO THE PRODUCT(S) AND/OR THE PROGRAM(S) DESCRIBED IN THE SPECIFICATION AT ANY TIME. Any use of such changes in the Specification will be governed by the then-current license for the applicable version of the Specification.

LIMITATION OF LIABILITY

TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT WILL SPECIFICATION LEAD OR ITS LICENSORS BE LIABLE FOR ANY DAMAGES, INCLUDING WITHOUT LIMITATION, LOST REVENUE, PROFITS OR DATA, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF OR RELATED TO ANY FURNISHING, PRACTICING, MODIFYING OR ANY USE OF THE SPECIFICATION, EVEN IF SPECIFICATION LEAD AND/OR ITS LICENSORS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

You will indemnify, hold harmless, and defend Specification Lead and its licensors from any claims arising or resulting from: (i) Your use of the Specification; (ii) the use or distribution of Your Java application, applet and/or clean room implementation; and/or (iii) any claims that later versions or releases of any Specification furnished to You are incompatible with the Specification provided to You under this license.

RESTRICTED RIGHTS LEGEND

U.S. Government: If this Specification is being acquired by or on behalf of the U.S. Government or by a U.S. Government prime contractor or subcontractor (at any tier), then the Government's rights in the Software and accompanying documentation shall be only as set forth in this license; this is in accordance with 48 C.F.R. 227.7201 through 227.7202-4 (for Department of Defense (DoD) acquisitions) and with 48 C.F.R. 2.101 and 12.212 (for non-DoD acquisitions).

REPORT

You may wish to report any ambiguities, inconsistencies or inaccuracies You may find in connection with Your use of the Specification ("Feedback"). To the extent that You provide Specification Lead with any Feedback, You hereby: (i) agree that such Feedback is provided on a non-proprietary and non-confidential basis, and (ii) grant Specification Lead a perpetual, non-exclusive, worldwide, fully paid-up, irrevocable license, with the right to sublicense through multiple levels of sublicensees, to incorporate, disclose, and use without limitation the Feedback for any purpose related to the Specification and future versions, implementations, and test suites thereof.

Preface

This specification defines the JSR-179 Location API for J2ME, version 1.0.1.

Overview

This specification defines a J2ME Optional Package that enables mobile location-based applications for resource limited devices (referred to as 'terminals' in the following). The API is designed to be a compact and generic API that produces information about the present geographic location of the terminal to Java applications.This API covers obtaining information about the present geographic location and orientation of the terminal and accessing a database of known landmarks stored in the terminal.

The Location API for J2ME is designed as an Optional Package that can be used with many J2ME Profiles. The minimum platform required by this API is the J2ME Connected, Limited Device Configuration (CLDC) v1.1. The API can also be used with the J2ME Connected Device Configuration (CDC). (Note that due to using the floating point datatypes in this API, it can't be used with CLDC v1.0.)

Notation used

This specification uses the following terms as they are defined in the table below:

Term

Definition

MUST

The associated definition is an absolute requirement of this specification.

MUST NOT

The definition is an absolute prohibition of this specification.

SHOULD

Indicates a recommended practice. There may exist valid reasons in particular circumstances to ignore this recommendation, but the full implications must be understood and carefully weighed before choosing a different course.

SHOULD NOT

Indicates a non-recommended practice. There may exist valid reasons in particular circumstances when the particular behavior is acceptable or even useful, but the full implications should be understood and the case carefully weighed before implementing any behavior described with this label.

MAY

Indicates that an item is truly optional.

Mathematical notation for defining ranges of floating point numbers is used as defined below:

[a,b] a closed range from value a to value b with the end-points a and b included in the range
(a,b) an open range from value a to value b with the end-points a and b not included in the range
[a,b) a half-open range from value a to value b with the end-point a included and end-point b not included in the range
(a,b] a half-open range from value a to value b with the end-point a not included and end-point b included in the range

Where BNF notation is used to define syntax elements, the BNF notation is used as defined in section 2.1 of RFC2616.

Glossary

This section defines some terms used in the specification.

Assisted

Implies that the other party provides some information assisting determining the location to the party that does the final calculation. For example, for a terminal based method 'assisted' means that the network provides some assistance information. See 'terminal based' and 'network based'.

Category

Category is used to group Landmarks that are of similar type to the end user, e.g. restaurants, museums, etc. Category has an identifying unique name that identifies the category to the end user.

Coordinates

The geographical coordinates (latitude, longitude, altitude) that identify a exact location point. In this API, these are encapsulated in instances of the Coordinates class.

Course

Course made good, i.e. direction of the velocity vector, relative to true north.

Landmark

A known geographical location that has a name and a category associated with it. The name is a textual name that identifies that location for the end user and the category provides a grouping of similar landmarks based on some property that is meaningful to the end user. In this API, often refers to the class Landmark. The landmarks are usually stored in a local database in the terminal that is represented by the LandmarkStore class in this API.

Location

Geographical location. In this API, often refers to the class Location that encodes the geographical coordinates, their accuracy, the current course and speed of the terminal (if available), textual address information for the location (if available) and the timestamp when the location measurement was made.

Qualified Coordinates

The geographical coordinates (latitude, longitude, altitude) that identify a location combined with their accuracy information. These identify a geographical location with some uncertainty of the measurement represented by the accuracy values. In this API, these are encapsulated in instances of the QualifiedCoordinates class.

Network based

A location method is network based if the final calculation that gives the location result is performed in the network.

Terminal based

A location method is terminal based if the final calculation that gives the location result is performed in the terminal.

References

[1] NIMA TR8350.2 World Geodetic System 1984, It's definition and Relationships with Local Geodetic Systems. U.S. Department of Defense
[2] NMEA 0183 Interface Standard, v3.01. National Marine Electronics Association, January 2002
[3] TS 101, Mobile Location Protocol Specification, v3.0.0. Location Interoperability Forum, 2002
[4] JSR-139 Connected Limited Device Configuration v1.1 (CLDC 1.1). Sun Microsystems, 2002
[5] ISO 3166-1 Codes for the representation of names of countries and their subdivisions -- Part 1: Country codes. International Organization for Standardization
[6] JSR-118 Mobile Information Device Profile 2.0 (MIDP 2.0). Motorola and Sun Microsystems, 2002

Report and Contact

Comments on this specification are welcome and appreciated. Comments can be sent to: jsr-179-comments@jcp.org.



Copyright © 2003-2005 Nokia Corporation. All Rights Reserved.
Java is a trademark of Sun Microsystems, Inc.