quadkey-boosted


Namequadkey-boosted JSON
Version 1.0.3 PyPI version JSON
download
home_pagehttps://github.com/ls-da3m0ns/pyquadkey-boosted
SummaryPython library that provides a powerful set of tools and functions for working with quadkeys. Built on top of C it offers lightning-fast calculations, ensuring optimal performance even with large-scale datasets.
upload_time2023-07-16 20:03:07
maintainer
docs_urlNone
authorPrashant Singh
requires_python>=3.6
license
keywords
VCS
bugtrack_url
requirements Cython
Travis-CI No Travis.
coveralls test coverage No coveralls.
            
# pyquadkey-boosted
[![License](https://img.shields.io/badge/License-Apache_2.0-green.svg)](https://opensource.org/licenses/Apache-2.0)
![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54)
![C](https://img.shields.io/badge/c-%2300599C.svg?style=for-the-badge&logo=c&logoColor=white)
## Description
pyquadkey-boosted is a high-performance Python library that provides a powerful set of tools and functions for working with quadkeys, enabling seamless integration of tile-based mapping systems into your Python applications. Built on top of a blazing-fast C implementation, pyquadkey-boosted offers lightning-fast calculations, ensuring optimal performance even with large-scale datasets.

## Key Features
 * Available API's
   * Conversion
      * lat lng to QuadKey
      * QuadKey to lat lng
      * QuadKey to BingTile
      * BingTile to QuadKey
      * Polygon to quadQuadKeykeys
      * QuadKey to Multipolygon
   * Operations
      * get parent
      * get childrens
      * get K neighbours
   * Metadata
      * get average tile size
      * get zoom level
      * get tile distance between two tiles
      * WKT, GeoJson, WKB representation of quadkey
 * C based backend for fast calculations
 * Can handle various types of projections

## License

[![License](https://img.shields.io/badge/License-Apache_2.0-green.svg)](https://opensource.org/licenses/Apache-2.0)

## Project Status
 * ✅ Add Basic convertion API
 * ❎ Implement advance geospatial apis
 * ❎ Add support for projections

### What is a QuadKey?

A QuadKey is a string representation of a tile's location in a quadtree hierarchy. It is used to index and address tiles at different levels of detail (zoom levels). The QuadKey system is based on dividing the Earth's surface into quadrants using a quadtree structure.

For more details on the concept, please refer to
the [Microsoft Article About this](https://docs.microsoft.com/en-us/bingmaps/articles/bing-maps-tile-system).

## Installation
### Requirements
   This library requires **Python 3.6** or higher. To compile it from source, Cython is required in addition.

### using pip
```bash
pip install pyquadkey-boosted
```
### From source
#### Prerequisites (`Linux`)
* `gcc`
    * Fedora: `dnf install @development-tools`
    * Ubuntu / Debian: `apt install build-essential`
* `python3-devel`
    * Fedora: `dnf install python3-devel`
    * Ubuntu / Debian: `apt install python3-dev`

#### Prerequisites (`Windows`)
* Visual C++ Build Tools 2015 (with Windows 10 SDK) (see [here](https://devblogs.microsoft.com/python/unable-to-find-vcvarsall-bat/#i-need-a-package-that-has-no-wheel-what-can-i-do))
#### Build from source
```bash
# Clone  repo
git clone https://github.com/ls-da3m0ns/pyquadkey-boosted

# Create Virtual Environment
python -m venv ./venv
source venv/bin/activate

# Install dependencies
pip install -r requirements.txt

# Compile 
python setup.py sdist bdist_wheel

# Install 
pip install dist/quadkey-0.0.1-cp38-cp38-linux_x86_64.whl
```
# Usage
## Basic Usage
```python
import quadkey
lat = 47.641268
lng = -122.125679
zoom = 15

# Convert lat lng to quadkey
qk = quadkey.geo_to_quadkey(lat, lng, zoom)

# Convert quadkey to lat lng
## get top left corner
lat, lng = quadkey.quadkey_to_geo(qk, corner=0)
## get bottom right corner
lat, lng = quadkey.quadkey_to_geo(qk, corner=2)

# Convert quadkey to bbox
bbox = quadkey.quadkey_to_bbox(qk)

# Convert quadkey to Tile
tl = quadkey.quadkey_to_tile(qk)

# Conver quadkey to quadint
qi = quadkey.quadkey_to_quadint(qk)

# Convert lat lng to quadint
qi = quadkey.geo_to_quadint(lat, lng, zoom)

# get parent quadkey
parent = quadkey.get_parent(qk)
```

## References

I would like to acknowledge the following repositories that served as references during the development of this project:
 - [pyquadkey2](https://github.com/muety/pyquadkey2)

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/ls-da3m0ns/pyquadkey-boosted",
    "name": "quadkey-boosted",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": "",
    "keywords": "",
    "author": "Prashant Singh",
    "author_email": "mail.prashantsingh.41@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/11/f3/bd8bbbb1cd6652eb4df20e0c197b5e7faed4f4d29e170c499c7ae7f095b6/quadkey-boosted-1.0.3.tar.gz",
    "platform": null,
    "description": "\n# pyquadkey-boosted\n[![License](https://img.shields.io/badge/License-Apache_2.0-green.svg)](https://opensource.org/licenses/Apache-2.0)\n![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge&logo=python&logoColor=ffdd54)\n![C](https://img.shields.io/badge/c-%2300599C.svg?style=for-the-badge&logo=c&logoColor=white)\n## Description\npyquadkey-boosted is a high-performance Python library that provides a powerful set of tools and functions for working with quadkeys, enabling seamless integration of tile-based mapping systems into your Python applications. Built on top of a blazing-fast C implementation, pyquadkey-boosted offers lightning-fast calculations, ensuring optimal performance even with large-scale datasets.\n\n## Key Features\n * Available API's\n   * Conversion\n      * lat lng to QuadKey\n      * QuadKey to lat lng\n      * QuadKey to BingTile\n      * BingTile to QuadKey\n      * Polygon to quadQuadKeykeys\n      * QuadKey to Multipolygon\n   * Operations\n      * get parent\n      * get childrens\n      * get K neighbours\n   * Metadata\n      * get average tile size\n      * get zoom level\n      * get tile distance between two tiles\n      * WKT, GeoJson, WKB representation of quadkey\n * C based backend for fast calculations\n * Can handle various types of projections\n\n## License\n\n[![License](https://img.shields.io/badge/License-Apache_2.0-green.svg)](https://opensource.org/licenses/Apache-2.0)\n\n## Project Status\n * \u2705 Add Basic convertion API\n * \u274e Implement advance geospatial apis\n * \u274e Add support for projections\n\n### What is a QuadKey?\n\nA QuadKey is a string representation of a tile's location in a quadtree hierarchy. It is used to index and address tiles at different levels of detail (zoom levels). The QuadKey system is based on dividing the Earth's surface into quadrants using a quadtree structure.\n\nFor more details on the concept, please refer to\nthe [Microsoft Article About this](https://docs.microsoft.com/en-us/bingmaps/articles/bing-maps-tile-system).\n\n## Installation\n### Requirements\n   This library requires **Python 3.6** or higher. To compile it from source, Cython is required in addition.\n\n### using pip\n```bash\npip install pyquadkey-boosted\n```\n### From source\n#### Prerequisites (`Linux`)\n* `gcc`\n    * Fedora: `dnf install @development-tools`\n    * Ubuntu / Debian: `apt install build-essential`\n* `python3-devel`\n    * Fedora: `dnf install python3-devel`\n    * Ubuntu / Debian: `apt install python3-dev`\n\n#### Prerequisites (`Windows`)\n* Visual C++ Build Tools 2015 (with Windows 10 SDK) (see [here](https://devblogs.microsoft.com/python/unable-to-find-vcvarsall-bat/#i-need-a-package-that-has-no-wheel-what-can-i-do))\n#### Build from source\n```bash\n# Clone  repo\ngit clone https://github.com/ls-da3m0ns/pyquadkey-boosted\n\n# Create Virtual Environment\npython -m venv ./venv\nsource venv/bin/activate\n\n# Install dependencies\npip install -r requirements.txt\n\n# Compile \npython setup.py sdist bdist_wheel\n\n# Install \npip install dist/quadkey-0.0.1-cp38-cp38-linux_x86_64.whl\n```\n# Usage\n## Basic Usage\n```python\nimport quadkey\nlat = 47.641268\nlng = -122.125679\nzoom = 15\n\n# Convert lat lng to quadkey\nqk = quadkey.geo_to_quadkey(lat, lng, zoom)\n\n# Convert quadkey to lat lng\n## get top left corner\nlat, lng = quadkey.quadkey_to_geo(qk, corner=0)\n## get bottom right corner\nlat, lng = quadkey.quadkey_to_geo(qk, corner=2)\n\n# Convert quadkey to bbox\nbbox = quadkey.quadkey_to_bbox(qk)\n\n# Convert quadkey to Tile\ntl = quadkey.quadkey_to_tile(qk)\n\n# Conver quadkey to quadint\nqi = quadkey.quadkey_to_quadint(qk)\n\n# Convert lat lng to quadint\nqi = quadkey.geo_to_quadint(lat, lng, zoom)\n\n# get parent quadkey\nparent = quadkey.get_parent(qk)\n```\n\n## References\n\nI would like to acknowledge the following repositories that served as references during the development of this project:\n - [pyquadkey2](https://github.com/muety/pyquadkey2)\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "Python library that provides a powerful set of tools and functions for working with quadkeys. Built on top of C it offers lightning-fast calculations, ensuring optimal performance even with large-scale datasets.",
    "version": "1.0.3",
    "project_urls": {
        "Bug Tracker": "https://github.com/lsda3m0ns/pyquadkey-boosted/issues",
        "Documentation": "https://github.com/lsda3m0ns/pyquadkey-boosted",
        "Homepage": "https://github.com/ls-da3m0ns/pyquadkey-boosted",
        "Source Code": "https://github.com/lsda3m0ns/pyquadkey-boosted"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8c7f1a5f8c8efe3bf096667a14d2500182be962f94968aa20b4525024e62c227",
                "md5": "3780bcef91e924778b72d39d685ab1ee",
                "sha256": "5fb85f9667d88e739d2631b5fb148254463c463ed6420336653435021f8d5537"
            },
            "downloads": -1,
            "filename": "quadkey_boosted-1.0.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "3780bcef91e924778b72d39d685ab1ee",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.6",
            "size": 214092,
            "upload_time": "2023-07-16T20:03:04",
            "upload_time_iso_8601": "2023-07-16T20:03:04.572923Z",
            "url": "https://files.pythonhosted.org/packages/8c/7f/1a5f8c8efe3bf096667a14d2500182be962f94968aa20b4525024e62c227/quadkey_boosted-1.0.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "11f3bd8bbbb1cd6652eb4df20e0c197b5e7faed4f4d29e170c499c7ae7f095b6",
                "md5": "e5b66ca204448e12f2ed697f02be5345",
                "sha256": "466a124d9a687e6042217b32231dee6f13bd7a9ec86913a09f95a66b89ab09ec"
            },
            "downloads": -1,
            "filename": "quadkey-boosted-1.0.3.tar.gz",
            "has_sig": false,
            "md5_digest": "e5b66ca204448e12f2ed697f02be5345",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 59385,
            "upload_time": "2023-07-16T20:03:07",
            "upload_time_iso_8601": "2023-07-16T20:03:07.386518Z",
            "url": "https://files.pythonhosted.org/packages/11/f3/bd8bbbb1cd6652eb4df20e0c197b5e7faed4f4d29e170c499c7ae7f095b6/quadkey-boosted-1.0.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-07-16 20:03:07",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "ls-da3m0ns",
    "github_project": "pyquadkey-boosted",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "Cython",
            "specs": [
                [
                    ">",
                    "2.9"
                ]
            ]
        }
    ],
    "lcname": "quadkey-boosted"
}
        
Elapsed time: 0.36838s