Completely new, unified, global postcode system, which does not require servers, massive databases and internet connection. Each international postcode (IPCS) has got geographical coordinates encoded in it is own record. More information on the website.

Known Addresses |
---|

Address not on the list? Please click "New Address" to add one.

The main concept of the system is to create a uniform system of postal codes for the whole earth. The most important aim is:

The system so constructed will eliminate the need to have a large global database containing the location of each postcode, It will also reduce or completely eliminate the costs of geocoding and as well as greatly speed up computer systems which search for a geographical position for the requested address.

Assumptions:

The area which is identified by postcode should not exceed 1000m2. So that you can easily and accurately reach the requested place, using a map or satellite navigation.

The system must cover every part of the planet, regardless of population, density of development, shape or type of surface.

Postal codes must be calculated / created on the basis of an algorithm and not given

You can calculate geographic coordinates from each postal code record that indicates center of the area.

International Postcode System (IPCS):

Should be based on the Latin alphabet as the most popular in the world.

It should have a relatively small number of characters that allows easy memorizing.

It should not contain special characters that are specific to a given country.

It should eliminate the most frequent mistakes in writing and reading (ie the letters O with the number 0 and the letter I with the number 1).

Construction of sectors

To calculate the International Postcode System(IPCS), we will use latitude and longitude in the decimal system. The longitude is between (-180, 180> while the latitude is between <-90, 90>. The first very important step to calculate the international postcode is to round the latitude and longitude to a quarter of 0.001.

Example:

Let's assume that the number t ∈ <0.000, 0.001>, the number x is our rounding.

If:

t ∈ <0.000, 0.000125 ) to x = 0.000

t ∈ <0.000125, 0.000375 ) to x = 0.00025

t ∈ <0.000375, 0.000625 ) to x = 0.0005

t ∈ <0.000625, 0.000875 ) to x = 0.00075

t ∈ <0.000875, 0.001 > to x = 0.001

Thanks to the use of roundings, the whole earth is divided into zones. Received coordinates identifies all created sector on earth and at the same time they are also its center. This fulfills the assumption we made at the beginning.

The grid extract looks as follows:

The structure of the sectors based on coordinates causes that the area of each sector, formed from rounding of latitude and longitude, decreases as moves to the poles of the earth. The largest areas will therefore be on the equator and will be around 728m2, which meets our assumption.

We can calculate the number of sectors created in this way. The numbers are rounded to the quarter of a thousand, so each thousandth is divided into 4.

For the longitude, we have a numerical range (-180, 180>. By x, we indicate the number of divisions. It is:

x = 360 * 1000 * 4 (

For latitude, we have a numerical range <-90, 90>. By y, we indicate the number of divisions. It is:

y = 181 * 1000 * 4 (

Using (

Number of sectors = x * y = (360 * 1000 * 4) * (181 * 1000 * 4) = 1 042 560 000 000 (

All that remains is construction of the International Postcode (IPCS) for each of the formed/created sectors.

Using Latin alphabets and numbers, we have 10 digits and 26 letters. We remove the letters O and I from the alphabet, (to meet the assumptions of the system). So we have the following 34 chars: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, G, H, J, K, L, M, N, P, Q, R, S, T, U, V, W, X, Y, Z}. Based on 34 characters, we create a number system – a system of thirty-four. On the left side we have numbers in the system of thirty-four, on the right we have the equivalent in the decimal system.

0 = 0 8 = 8 G = 16 Q = 24 Y = 32

1 = 1 9 = 9 H = 17 R = 25 Z = 33

2 = 2 A = 10 J = 18 S = 26

3 = 3 B = 11 K = 19 T = 27 (

4 = 4 C = 12 L = 20 U = 28

5 = 5 D = 13 M = 21 V = 29

6 = 6 E = 14 N = 22 W = 30

7 = 7 F = 15 P = 23 X = 31

Each number based on 34 characters can be represented in the decimal system as follows:

... dcba34 = f (a) x 34^0 + f (b) x 34^1 + f (c) x 34^2 + f (d) x 34^3 + ..., where f is a function that assigns each digit, from the thirty-four system, its equivalent in the decimal system, (see (4)). Whereas a, b, c, d are digits from the thirty-four systems.

Example:

AGZ15Z(34) = f(Z) x 34^0 + f(5) x 34^1 + f(1) x 34^2 + f(Z) x 34^3 + f(G) x 34^4 + f(A) x 34^5 =

33 x 34^0 + 5 x 34^1 + 1 x 34^2 + 33 x 34^3 + 16 x 34^4 + 10 x 34^5 =

33 x 1 + 5 x 34 + 1 x 1 156 + 33 x 39 304 + 16 x 1 336 336 + 10 x 45 435 424 =

33 + 170 + 1 156 + 1 297 032 + 21 381 376 + 454 354 240 = 477 034 007

As we can see, the thirty-four record is much shorter. We will need 8 characters to generate postcodes for the whole planet. The maximum number of characters in the current English and Irish postal code system is 7, in Japanese 7 digits, Dutch 6 characters, etc. Considering the length of postal codes in other countries and the fact that the International Postcode System is a global system, we assume that 8 characters are acceptable and meet the assumptions of our system.

The largest number that we can store, using 8 digits in our thirty-four system is (detailed calculations have been omitted):

ZZZZZZZZ(34) = 1 785 793 904 895

It seems that the earth may have 1 785 793 904 896 postal codes (the number has been increased by 1 in relation to the largest number because 00000000 can also be a code). From the previous calculation (

510 100 000 000 000 m2 / 1 042 560 000 000 ≈ 489.2764 m2

So the number of ZZZZZZZZ(34) meets our assumptions, and the area of each sector is lesser than 1000m2.

Now what remains is the conversion of the sector centre to the International Postcode System(IPCS).

For our requirement, we will present integer part of the negative numbers in the following way:

For longitude, the negative integer part x will be converted to 360 + x.

For latitude, the negative integer y will be changed to 180 + y.

The fractional part remains unchanged.

Summarizing:

Longitude -XXX.xxxxx will be converted to (360 + (-XXX)). Xxxxx

Latitude -YYY.yyyyy will be converted to (180 + (-YYY)). Yyyyy

Examples of the conversion:

The number -75.43725 for longitude is 285.43725, because 360 + (-75) = 285.

The number -0.411250 for longitude is 360.411250, because 360 + 0 = 360.

The number -15.44375 for latitude is 165.44375, because 180 + (-15) = 165.

When creating the algorithm we should take into account the fact that in this record, the South Pole of 90 degrees of latitude and the North Pole of- 90 degrees of latitude are the same.

Taking into account the conversion of negative numbers and rounding, the general form of coordinates recorded in the decimal system is:

For longitude: XXX.xxxqq, where XXX ∈ {x∈N: 000 <= x <= 360},

xxx ∈ {x∈N: 000 <= x <= 999},

qq ∈ {00, 25, 50, 75}

For latitude: YYY.yyygg, where YYY ∈ {x∈N: 000 <= x <= 180},

yyy ∈ {x∈N: 000 <= x <= 999},

gg ∈ {00, 25, 50, 75}

In the next step, each element of the number XXX.xxxqq and the number YYY.yyygg are converted into a binary system.

XXX(10) = XXXXXXXXX(2) - largest number is 360. We need 9 bits to present this number.

xxx(10) = xxxxxxxxxx(2) - largest number is 999. We need 10 bits to present this number.

qq(10) = qq(2) - the largest number is 75. However, our set has only 4 elements, that's why our conversion involves assigning 00(10) => 00(2) , 25(10) => 01(2) , 50(10) => 10(2) ,75(10) => 11(2)

YYY(10) = YYYYYYYY(2) - largest number is 180. We need 8 bits to present this number.

yyy(10) = yyyyyyyyyy(2) - largest number is 999. We need 10 bits to present this number.

gg(10) = gg(2) - the largest number is 75. However, our set has only 4 elements, that's why our conversion involves assigning 00(10) => 00(2) , 25(10) => 01(2) , 50(10) => 10(2) ,75(10) => 11(2)

Then we set the numbers from the binary system in the following order:

XXXXXXXXX(2) YYYYYYYY(2) xxxxxxxxxx(2) yyyyyyyyyy(2) qq(2) gg(2)

We take a minimum 41-bit number, zero it and enter the above bits from right to left keeping their order. The number obtained is equal to:

XXXXXXXXXYYYYYYYYxxxxxxxxxxyyyyyyyyyyqqgg(2)

In the last step, we change the binary system into a thirty-four system. The obtained thirty-four number is also our International Postcode (IPCS). Coordinates of the center of the area are encrypted in our record of International Postcode (IPCS).

The order in which the bits are written is very important because, rounded and presented in accordance with our convention, the coordinate with the largest numerical value is 360.99975, 180.99975. Converting it to a binary system we get the number:

10110100010110100111110011111111001111111(2) = 1 549 224 509 055(10)

The number obtained is lesser than the maximum number of the thirty-four code which is ZZZZZZZZ(34) = 1 785 793 904 89510. By changing the order of bits we can exceed the maximum value, which will make it impossible to create postal codes for all sectors.

In order to receive coordinates of the center of the sector (International Postcode), we do the operation in reverse order.

Examples:

The International Postcode (IPCS), for the coordinates -1.347120, 53.983489, we are constructing as follows:

We round, convert coordinates and get 359.34700, 53.98350

We change each element of coordinate, that is: numbers 359, 347, 00, 53, 983, 50, to a binary system as described above. And we get 101100111(2) , 0101011011(2) , 00(2) , 00110101(2) , 1111010111(2) , 10(2)

Set the numbers in the correct order 101100111(2) , 00110101(2) , 0101011011(2), 1111010111(2) , 00(2) , 10(2)

We create the number 10110011100110101010101101111110101110010(2)

We convert the binary number to thirty-four and get VCPM6TKY(34)

The number obtained is the International Postcode (IPCS):

Coordinates for the International Postcode 1GL8 YT7F are calculated as follows:

We convert the number of thirty-four 1GL8YT7F34 to binary and we get 00001001000110010110000001101001101101001(2)

Extract the numbers 000010010(2), 00110010(2), 1100000011(2), 0100110110(2), 10(2), 01(2)

We change the order of 000010010(2), 1100000011(2), 10(2), 00110010(2), 0100110110(2), 01(2)

We change binary numbers to decimal 18, 771, 50, 50, 310, 25

From the numbers obtained, we get coorinate

Read more

Send Comments mail@yourwebsite.com Monday, October 22, 2018