/Xaddress

Xaddress - Give 7 billion people an instant physical address

Primary LanguageRubyMIT LicenseMIT

Logo

XADDRESS

Give 7 billion people an instant physical address that can be used offline and decoded with low tech (pen & paper).

Read it on Medium

[An Algorithm that can give an instant solution to 7b people] (https://medium.com/@roberdam/an-algorithm-that-can-give-an-instant-solution-to-7-billion-people-60bf628205a2)

How it works.

Xaddress encodes the latitude & longitude of a place in a form that resembles a normal address and can be decoded back easily even in a low tech environment using paper, pen and a physical map.

Demo

TRY IT IN ENGLISH | PRUEBALO EN ESPAÑOL

The demo site uses some free apis with limited requests per day, 
some functionality might be unavailable on high demand.

How it looks

![looks] (https://github.com/roberdam/Xaddress/blob/master/images/looks.png)

Features

![parts] (https://github.com/roberdam/Xaddress/blob/master/images/parts.png)

1) VISUAL AVATAR

Used like a visual hash to ensure that you write the Xaddress right, if you change any letter it will generate another image, for example MAGICAL PEARLS will show you a different image so you can know that you write a wrong address.

If you want to transmit your Xaddress by phone you will say

"7150 MAGICAL PEARL - Maluku ,Indonesia" my avatar is a boot

2) COUNTRY AND STATE

You can see right away the country and state where that Xaddress is located, and you can recognize it as an address.

3) SHORT CODE

By default Xaddress create 2 kind of codes, each one independent from the other, the short code can be decoded by itself, it can have 1 meter accuracy, and is useful to storage or send it as a link, like ubicate.me/NOMATAL-KOROFAD

Encoding with the Ruby CLI.

Now to get started with Xaddress you would perform the following:

git clone https://github.com/roberdam/Xaddress.git
cd Xaddress
bundle
ruby encode.rb "-6.7184,129.5080"

You can use it without using geocoder by specify state and country in the command line:

ruby encode.rb "-6.7184,129.5080" "Maluku, Indonesia"

Decoding with the Ruby CLI.

ruby decode.rb "7150 MAGICAL PEARL - Maluku, Indonesia"

PROS:

  • Instantaneous.
  • Offline
  • Designed to be used in low tech environments
  • Multilanguage
  • Error correction incorporated with visual avatar.
  • Short code for storing or linking.
  • Works with any map.
  • Yow know is an address when you see it.

CONS:

  • May take you some effort to find a suitable address
  • 10mts accuracy with the present form.

ALTERNATIVES:

Compare encodings:

Option Location : -6.7184 , 129.5080
XADDRESS 7150 Magical Pearl - Maluku, Indonesia
WHAT3WORDS percolator.surmount.retooled
GEOHASH qyu1g0by7
MAPCODE VQ6.1MFD
OPENLOCATIONCODE 6Q5F 7GJ5+J6

Port Xaddress to other languages

Check the pseudocode guide to implement Xaddress in other languages, apps or internal systems. https://github.com/roberdam/Xaddress/tree/master/pseudocode

Contributing

There is a lot to do if you want to contribute:

  • Mobile App
  • Language packs
  • Spread the word
  • Errors/corrections/improvement, raise an issue on Github and I would be more than happy to discuss :)