{ "info": { "author": "Florian Klien", "author_email": "flowolf@klienux.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Topic :: Scientific/Engineering :: GIS" ], "description": "# Geo58\n\nYet another short-link specification for geo-coordinates.\n\n## Key Features\n\n* uses base-58 encoding\n* can be as short as 8 characters, mostly 9 characters\n* maximum length of 10 characters\n* resolves to about 1.1m accuracy\n* geocoordinates that are close, look similar\n* can include a zoom level of a map (20-5)\n\n\n### Base-58 encoding\n\n[Base-58 encoding](https://en.wikipedia.org/wiki/Base58) uses 58 alphanumerical characters of the alphabet plus 9 digits.\nCharacters that look similar ('0', 'O', 'I', 'l') are omitted. \nThis allows for manual copying of data with little potential for ambiguity. \n\n### 8-10 characters short\n\nThe encoding is done in the followin schema:\n`[Zoom 4bit][joined [Lat 25bit][Lon 26bit]]`\n\n* `Zoom`: beeing an optional parameter for a possible viewport (see below).\n* `posLat`: is the latitude (mapped from [-90,90] to [0, 180]).\n* `posLon`: is the longitude (mapped from [-180,180] to [0, 360]).\n\nThe last 51 bit are 'intervoven' to generate a bit-sequence with least significant bits to the right.\nThis allows the generation of short-strings that are similar to each other if they are close to one another.\n\n\n### Link similarity\n\nThe following 3 links, refer to cafes in Heidelberg, which are only ~25m apart:\n\n* https://yosm.at/NBiwwcnfq;amenity=cafe\n* https://yosm.at/NBiwwcnuw;amenity=cafe\n* https://yosm.at/NBiwwcnZc;amenity=cafe\n\n\n### Zoom level (can be) included\n\n4 bit of the short-string are used to encode the zoom level of a viewport. This can be used to\nhint at the size of the object that is being referred to. \nThe zoom level is pre-fixed to the bit-sequence. It is also 'inverted' to allow zoom level 20\nto be represented as zero and 19 as one. Zomm level 5 would be using 4 bits.\n\nAs the zoom level is pre-fixed, zoom level 20 does not 'consume' any bit-bandwidth, resulting in a \nshort-string being as short as possible.\n\n\n### Credit\n\nThis format came to be during the creation of a short-link format for [YellowOSM](https://yellowosm.com).\n\nYellowOSM is supported by [NetIdee](https://netidee.at/yellowosm).\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/flowolf/Geo58", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "geo58", "package_url": "https://pypi.org/project/geo58/", "platform": "", "project_url": "https://pypi.org/project/geo58/", "project_urls": { "Homepage": "https://github.com/flowolf/Geo58" }, "release_url": "https://pypi.org/project/geo58/1.0.0b1/", "requires_dist": null, "requires_python": ">=3.6", "summary": "Yet another short-link specification for geo-coordinates.", "version": "1.0.0b1" }, "last_serial": 5920517, "releases": { "1.0.0b1": [ { "comment_text": "", "digests": { "md5": "4819a5ccb59bd415fe0d6ab723cff32b", "sha256": "5e171f4fc492270c3f07fcb1255f8faef1aa6632376dae94db18c538bbfed4fa" }, "downloads": -1, "filename": "geo58-1.0.0b1-py3-none-any.whl", "has_sig": false, "md5_digest": "4819a5ccb59bd415fe0d6ab723cff32b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 5190, "upload_time": "2019-10-02T21:03:27", "url": "https://files.pythonhosted.org/packages/0d/0b/66efee7e5a04d09fc55c823797dfcd6c816e5cdd759f97fdf2fae3da4c74/geo58-1.0.0b1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d8f6c713aaaa554793f31af794b7d5be", "sha256": "58741677708b0873fb9816763fd684ae65af61a3518daecfbde1bcf737b9a8d8" }, "downloads": -1, "filename": "geo58-1.0.0b1.tar.gz", "has_sig": false, "md5_digest": "d8f6c713aaaa554793f31af794b7d5be", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 4978, "upload_time": "2019-10-02T21:03:30", "url": "https://files.pythonhosted.org/packages/7c/d6/5d2871344052b42e737bc4fa6fe8e31c8246d85d3f2540879be8b04123d4/geo58-1.0.0b1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4819a5ccb59bd415fe0d6ab723cff32b", "sha256": "5e171f4fc492270c3f07fcb1255f8faef1aa6632376dae94db18c538bbfed4fa" }, "downloads": -1, "filename": "geo58-1.0.0b1-py3-none-any.whl", "has_sig": false, "md5_digest": "4819a5ccb59bd415fe0d6ab723cff32b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 5190, "upload_time": "2019-10-02T21:03:27", "url": "https://files.pythonhosted.org/packages/0d/0b/66efee7e5a04d09fc55c823797dfcd6c816e5cdd759f97fdf2fae3da4c74/geo58-1.0.0b1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d8f6c713aaaa554793f31af794b7d5be", "sha256": "58741677708b0873fb9816763fd684ae65af61a3518daecfbde1bcf737b9a8d8" }, "downloads": -1, "filename": "geo58-1.0.0b1.tar.gz", "has_sig": false, "md5_digest": "d8f6c713aaaa554793f31af794b7d5be", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 4978, "upload_time": "2019-10-02T21:03:30", "url": "https://files.pythonhosted.org/packages/7c/d6/5d2871344052b42e737bc4fa6fe8e31c8246d85d3f2540879be8b04123d4/geo58-1.0.0b1.tar.gz" } ] }