https://github.com/roberdam/Xaddress
Xaddress - Give 7 billion people an instant physical address
https://github.com/roberdam/Xaddress
Last synced: 12 days ago
JSON representation
Xaddress - Give 7 billion people an instant physical address
- Host: GitHub
- URL: https://github.com/roberdam/Xaddress
- Owner: roberdam
- License: mit
- Created: 2016-08-09T14:57:39.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2022-09-30T16:58:27.000Z (over 2 years ago)
- Last Synced: 2025-04-12T10:57:45.584Z (21 days ago)
- Language: Ruby
- Homepage: http://xaddress.org
- Size: 18 MB
- Stars: 1,185
- Watchers: 20
- Forks: 46
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-repositories - roberdam/Xaddress - Xaddress - Give 7 billion people an instant physical address (Ruby)
README

# 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](http://www.xaddress.org/try?lng=en) | [PRUEBALO EN ESPAÑOL](http://www.xaddress.org/try?lng=es)
```
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 PEARL**S** 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](http://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:
* [What3words] (http://what3words.com) - Uses 3 words to define any location *percolator.surmount.retooled*, commercial option with a patented algorithm.
* [Geohash] (http://geohash.org/) - Free and Opensource *qyu1g0by7*
* [Mapcode] (http://www.mapcode.com/) - Free with Apache License Version 2.0. *VQ6.1MFD*
* [Openlocationcode] (http://openlocationcode.com/) - Free and Opensource *6Q5F 7GJ5+J6*## 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 :)