This release is a pre-release and may not be stable for production use.
Geo58
Yet another short-link specification for geo-coordinates.
Key Features
- uses base-58 encoding
- can be as short as 8 characters, mostly 9 characters
- maximum length of 10 characters
- resolves to about 1.1m accuracy
- geocoordinates that are close, look similar
- can include a zoom level of a map (20-5)
Base-58 encoding
Base-58 encoding uses 58 alphanumerical characters of the alphabet plus 9 digits. Characters that look similar ('0', 'O', 'I', 'l') are omitted. This allows for manual copying of data with little potential for ambiguity.
8-10 characters short
The encoding is done in the followin schema:
[Zoom 4bit][joined [Lat 25bit][Lon 26bit]]
Zoom: beeing an optional parameter for a possible viewport (see below).posLat: is the latitude (mapped from [-90,90] to [0, 180]).posLon: is the longitude (mapped from [-180,180] to [0, 360]).
The last 51 bit are 'intervoven' to generate a bit-sequence with least significant bits to the right. This allows the generation of short-strings that are similar to each other if they are close to one another.
Link similarity
The following 3 links, refer to cafes in Heidelberg, which are only ~25m apart:
- https://yosm.at/NBiwwcnfq;amenity=cafe
- https://yosm.at/NBiwwcnuw;amenity=cafe
- https://yosm.at/NBiwwcnZc;amenity=cafe
Zoom level (can be) included
4 bit of the short-string are used to encode the zoom level of a viewport. This can be used to hint at the size of the object that is being referred to. The zoom level is pre-fixed to the bit-sequence. It is also 'inverted' to allow zoom level 20 to be represented as zero and 19 as one. Zomm level 5 would be using 4 bits.
As the zoom level is pre-fixed, zoom level 20 does not 'consume' any bit-bandwidth, resulting in a short-string being as short as possible.
Credit
This format came to be during the creation of a short-link format for YellowOSM.
YellowOSM is supported by NetIdee.
Metadata
Release files for geo58 1.0.0b1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| geo58-1.0.0b1.tar.gz | 5.0 kB | Without provenance | Details for geo58-1.0.0b1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| geo58-1.0.0b1-py3-none-any.whl | Python 3 | none | any | Details for geo58-1.0.0b1-py3-none-any.whl |
Total release size: 10.2 kB
Release files / geo58-1.0.0b1.tar.gz
| Download URL | geo58-1.0.0b1.tar.gz |
|---|---|
| Size | 5.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
58741677708b0873fb9816763fd684ae65af61a3518daecfbde1bcf737b9a8d8
|
|
BLAKE2b-256 checksum How to use checksums |
7cd65d2871344052b42e737bc4fa6fe8e31c8246d85d3f2540879be8b04123d4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4
|
Release files / geo58-1.0.0b1-py3-none-any.whl
| Download URL | geo58-1.0.0b1-py3-none-any.whl |
|---|---|
| Size | 5.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5e171f4fc492270c3f07fcb1255f8faef1aa6632376dae94db18c538bbfed4fa
|
|
BLAKE2b-256 checksum How to use checksums |
0d0b66efee7e5a04d09fc55c823797dfcd6c816e5cdd759f97fdf2fae3da4c74
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4
|
Security for geo58 1.0.0b1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.