Skip to main content

MapTrix - A Python implementation of Geo library for map data processing and computation,

Project description

MapTrix

MapTrix is a Python implementation of geo utilities for map data processing and computation, including geospatial calculations, map data manipulation, and spatial analysis tools.

Features

  • WGS84 to NDS coordinate conversion utilities.
  • Morton (Z-order) encoding/decoding for 2D coordinates.
  • NDS.Live packed tile ID helpers, neighbors, and tile metrics.
  • Bounding box utilities for NDS coordinate space.
  • Snapping/unsnapping helpers for point encoding.

Requirements

  • Python 3.9+

Installation

From source:

pip install -e .

Quickstart

from maptrix.pos import Position
from maptrix.morton import MortonCode
from maptrix.tileid import PackedTileId
from maptrix.bounding_box import NdsBoundingBox

# WGS84 to NDS
wgs = Position(lon=77.5946, lat=12.9716)
nds_x, nds_y = wgs.to_nds_coordinates()

# Morton encoding
morton = MortonCode().from_nds(nds_x, nds_y)

# Tile ID at level 13
tile = PackedTileId.from_morton_and_level(MortonCode(morton), level=13)
print(tile.value, tile.level())

# Tile bounds as NDS bounding box
bbox = NdsBoundingBox.from_tile(tile)
print(bbox)

Snapping example:

from maptrix.libmath import Coord2PointXY, CoordinateMath

maths = CoordinateMath(coordinate_shift=3)
point = Coord2PointXY(long=77.5946, lat=12.9716)
ref = Coord2PointXY(long=77.5900, lat=12.9700)

snap = maths.snap(point, ref)
unsnap = maths.unsnap(snap, ref)

API Overview

  • maptrix.pos.Position: WGS84 position utilities, normalization, distance, and bearings.
  • maptrix.morton.MortonCode: Morton encoding/decoding for NDS coordinates.
  • maptrix.tileid.PackedTileId: NDS.Classic / NDS.Live packed tile ID helpers and neighbors.
  • maptrix.bounding_box.NdsBoundingBox: Bounding box creation and intersection checks.
  • maptrix.libmath: Convenience helpers for snapping and coordinate conversion.

Project Structure

src/maptrix/
  __init__.py
  bounding_box.py
  libmath.py
  morton.py
  pos.py
  tileid.py

Testing

If you add tests, you can run them with:

python -m unittest 

License

See pyproject.toml.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

maptrix-0.2.4-cp314-cp314-musllinux_1_2_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

maptrix-0.2.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

maptrix-0.2.4-cp313-cp313-musllinux_1_2_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

maptrix-0.2.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

maptrix-0.2.4-cp312-cp312-musllinux_1_2_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

maptrix-0.2.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

maptrix-0.2.4-cp311-cp311-musllinux_1_2_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

maptrix-0.2.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

maptrix-0.2.4-cp310-cp310-musllinux_1_2_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

maptrix-0.2.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

maptrix-0.2.4-cp39-cp39-musllinux_1_2_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

maptrix-0.2.4-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

File details

Details for the file maptrix-0.2.4-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

  • Download URL: maptrix-0.2.4-cp314-cp314-musllinux_1_2_x86_64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.14, musllinux: musl 1.2+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.24 {"installer":{"name":"uv","version":"0.9.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for maptrix-0.2.4-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 05858f0f3d7f0cc7d656aac5f93546c242e68fa08833b863f36f6e47f7076ce8
MD5 e44839782b7d89032bdb98b76fa90b9d
BLAKE2b-256 6944661770d34601743f7cca5fd40997cee44031bc932e7abdc9b3dc431f5b5f

See more details on using hashes here.

File details

Details for the file maptrix-0.2.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

  • Download URL: maptrix-0.2.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.14, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.24 {"installer":{"name":"uv","version":"0.9.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for maptrix-0.2.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6f7575cbfa6b4be6af0642bb1c9d75e71517ba586a940a5bcceb22e9b49060ab
MD5 3f85a6f9a854ac32fc4f6f65f956a4f2
BLAKE2b-256 42a608c39047e03b4668a595664859ead80a10cdb810246a0bd2d3238c8899ca

See more details on using hashes here.

File details

Details for the file maptrix-0.2.4-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

  • Download URL: maptrix-0.2.4-cp313-cp313-musllinux_1_2_x86_64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.13, musllinux: musl 1.2+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.24 {"installer":{"name":"uv","version":"0.9.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for maptrix-0.2.4-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d22cfc1bea6009e802bcc48c391d98f02f516a25fbec8a5aafb6e2c6e1d4f6e0
MD5 b6594d71be7fa150cd0c993aac0d8e78
BLAKE2b-256 9e979c15de321e38d88594a0dc0de5d07e1757f3e4acb4ecb3ff1a5f06d1a556

See more details on using hashes here.

File details

Details for the file maptrix-0.2.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

  • Download URL: maptrix-0.2.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.24 {"installer":{"name":"uv","version":"0.9.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for maptrix-0.2.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f36047b00557d19d1f407fa30aceea1c4813f81e236976045eda74f2f75005bc
MD5 a2951b8971509f1793c7d29a61fdb20c
BLAKE2b-256 e6776dac0bf77e5265609885a4021d4f474dfbd5642226edf946d035e8c8729b

See more details on using hashes here.

File details

Details for the file maptrix-0.2.4-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

  • Download URL: maptrix-0.2.4-cp312-cp312-musllinux_1_2_x86_64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.12, musllinux: musl 1.2+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.24 {"installer":{"name":"uv","version":"0.9.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for maptrix-0.2.4-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 76bc83212428d357eeaa63d817c5469d0027707c27981395e6f30c486b874436
MD5 6fbfc231f9677a9e5e541ae261560300
BLAKE2b-256 603c273986b8c046b7b541ecc6796e70fca11e8fd307d294a0047e76575d6048

See more details on using hashes here.

File details

Details for the file maptrix-0.2.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

  • Download URL: maptrix-0.2.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.24 {"installer":{"name":"uv","version":"0.9.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for maptrix-0.2.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 43980a84131835ee7a596c51ea4bec02f33527f757c5045f5ef556340a6ddc24
MD5 7301f3723dfe8bc0368027ff4488bc57
BLAKE2b-256 549950b34d664f641f3358bc1b964f500a5fb202e18dc58ebbb3a4580440db0f

See more details on using hashes here.

File details

Details for the file maptrix-0.2.4-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

  • Download URL: maptrix-0.2.4-cp311-cp311-musllinux_1_2_x86_64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.11, musllinux: musl 1.2+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.24 {"installer":{"name":"uv","version":"0.9.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for maptrix-0.2.4-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 46002cbe30d45ee143a509d1681f19c22931f4a3456d744271b41633bf344c19
MD5 da254f8e16f92f794786b4dd769d4960
BLAKE2b-256 eef1e7aed30571e1b46cae9f183c54007e3b43a3f55f0581f37db319c638d5f2

See more details on using hashes here.

File details

Details for the file maptrix-0.2.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

  • Download URL: maptrix-0.2.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
  • Upload date:
  • Size: 1.7 MB
  • Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.24 {"installer":{"name":"uv","version":"0.9.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for maptrix-0.2.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6c87ae644c91cb72463c72dfcca178f7987fd8187bf4ee7d0e5738db52b010b6
MD5 dae6f4709a2db3fbbfa294cafc70cfc7
BLAKE2b-256 129410db315effba89757336aec0726d134e17316b78f6afa11db3ba80d10032

See more details on using hashes here.

File details

Details for the file maptrix-0.2.4-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

  • Download URL: maptrix-0.2.4-cp310-cp310-musllinux_1_2_x86_64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.10, musllinux: musl 1.2+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.24 {"installer":{"name":"uv","version":"0.9.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for maptrix-0.2.4-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 66a550db36eeb4b66e2599c265aa059a26c1d0a6fead523796581daf9b08d160
MD5 93c80e83b7c443117639bf8ed4d48ecf
BLAKE2b-256 1e47ea5b4cfe9ac873cb6d0c0a76eeb0610bbdf1c0e17cb4d02d466a170806ed

See more details on using hashes here.

File details

Details for the file maptrix-0.2.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

  • Download URL: maptrix-0.2.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.24 {"installer":{"name":"uv","version":"0.9.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for maptrix-0.2.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 356af7b685e955ef9de817e43745972f2c2b012de36262fe6cce014cfa6a7605
MD5 c3f38090599dfe5591b8f5d650439132
BLAKE2b-256 5f84fb479d1ceade2ea8f178e4c440324c9cde90beb9a67304fc90bae932534f

See more details on using hashes here.

File details

Details for the file maptrix-0.2.4-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

  • Download URL: maptrix-0.2.4-cp39-cp39-musllinux_1_2_x86_64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.9, musllinux: musl 1.2+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.24 {"installer":{"name":"uv","version":"0.9.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for maptrix-0.2.4-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4437c21494129f905143fe10cb804e9fb6415fd508cacdbbf720e0e83855b623
MD5 9c237e4434c30c8c4a0cd396e6b8837e
BLAKE2b-256 4222ea7dfcc7a71510910ef670ade5c6d77afe3f2a6e0dbc9ac4488762dc350d

See more details on using hashes here.

File details

Details for the file maptrix-0.2.4-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

  • Download URL: maptrix-0.2.4-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.24 {"installer":{"name":"uv","version":"0.9.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for maptrix-0.2.4-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4078164c3e45de6f53f83e9b8481f7acf46786ea21463218533bdfc3070e1991
MD5 31544a8e71b3fb2f3406c8b3ae0e1738
BLAKE2b-256 97fb409dbf5c35631288ccbcaf53b8b2127e94b41a0560bb19f7886cc83c6762

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page