LP-Address specification  Written by Naoki Ueda

Version 3.0.1    4,August,2010

## 1. Format

LP-Address has following format and total 15 letters in length.One [XYN] block is called "Chunk".

XYN.XYN.XYN.XYN

[X]: represents one of alphabet, A-X
[Y]: represents one of alphabet, A-Y
[N]: represents one of number, 0-9
".": period as delimiter

## 2. Introducing "Base 6T (Base Six Thousand)" encoding designed for LP-Address.

One Base6T value is consist of two capital alphabet and one number, and can have value of positive integer from [AA0] (=0)  to [XY9] (=5999). Format is same as 'Chunk'.

XYN
|||
||+----Lowest (1st) digit: increments - (means 0-9)
|+-----Middle (2nd) digit: increments [A]-[Y] (means 0-23)
+------Highest(3rd) digit: increments [A]-[X] (means 0-24)

Carry:

When each digit is maximum value ( or [Y]) and increment more, carry over to next higher digit.

Example of value:

Decimal   Base6T
0         AA0
1         AA1
2         AA2
:         :
9         AA9
10        AB0 <-- Carry
11        AB1
:          :
249       AY9
250       BA0 <-- Carry
251       BA1
:          :
5998      XY8
5999      XY9

## 3. Encode/Decode Logic

LP-Address has a linear relationships with Latitude and Longitude (unit: decimal degree) in WGS84 datum. Following equation shows relationship.

(Lat_Degree + 180.0) / 0.00001 = Latitude_STEP =      a * 6000 + b
(Lon_Degree + 180.0) / 0.00001 = Longitude_STEP=   c * 6000 + d

abc, and d are positive integer from 0 to 5999

a'.c'.b'.d'
(Note: a', b', c', and d' are a, b, c, and d in Base6T encoding format.)

Example:

Latitude = +40.68916, Longitude = -74.04487 (Precision is 0.00001 degree)

(+40.68916 + 180.0) / 0.00001 = 22068916 = 3678 * 6000 + 916 <--> [OR8] * 6000 + [DQ6]
(-74.04486 + 180.0) / 0.00001 = 10595514 = 1765 * 6000 + 5514 <--> [HB5] * 6000 + [WB4]

OR8.HB5.DQ6.WB4

## 4. Structure of Chunks

Latitude Elements

XYN.XYN.XYN.XYN

First and Third Chunk are Latitude Elements.

Latitude       Latitude-Element
-90.00000    GA0.***.AA0.*** (South Pole)
0.000000     MA0.***.AA0.*** (Equator)
89.99999     RY9.***.XY9.***
90.00000     SA0.***.AA0.*** (North Pole)

Note: For latitude, use only middle part (-90 to + 90 degree) of whole code range (-180 to +180 degree)

Longitude Elements

XYN.XYN.XYN.XYN

Second and Forth Chunk are Longitude elements.

Longitude            Longitude-Element
-180.00000   ***.AA0.***.AA0
0.00000       ***.MA0.***.AA0 (Greenwich)
179.99999    ***.XY9.***.XY9

Area Code elements

XYN.XYN.XYN.XYN

First and Second Chunk constructs Area Code.
Area Code represents area of 0.06 degree in latitude by 0.06 degree in longitude. When value of Area Code chunk increase one, that means shift to north or east direction by 0.06 degree.

## Local Code elements

XYN.XYN.XYN.XYN

Third and Forth Chunk constructs Local Code.
Local Code points a location within Area.
Both latitude and longitude within each Area are divided into 6000 areas correspondingly, then name them from "AA0" to "XY9" in east or north direction. One Step of value is 0.00001 degree in both latitude and longitude. 