Skip to main content

MapTrix - A Python implementation of Geo library for map data processing and computation, including geospatial calculations, map data manipulation, and spatial analysis tools.

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.3.2-cp314-cp314-musllinux_1_2_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

maptrix-0.3.2-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.3.2-cp313-cp313-musllinux_1_2_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

maptrix-0.3.2-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.3.2-cp312-cp312-musllinux_1_2_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

maptrix-0.3.2-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.3.2-cp311-cp311-musllinux_1_2_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

maptrix-0.3.2-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.3.2-cp310-cp310-musllinux_1_2_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

maptrix-0.3.2-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

File details

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

File metadata

  • Download URL: maptrix-0.3.2-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.3.2-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c2d805fd90e90932773a5cf5847cefc8b7b9de8a047760e958a9fe743758bc63
MD5 7b5d597224efdd1773626312d4592601
BLAKE2b-256 cee2aa7a4b3819077820345a786370692eaaf5c3cb0b41f8000a07077c85e8b2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: maptrix-0.3.2-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.3.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5ac5a0498766448034338808554a5be60b5f7133b5211abb2b0d8044607d40e1
MD5 8d23f6aa4d556839d8c30a5d3cfda232
BLAKE2b-256 6d8d0908afa1b0017e63967e29fdfb44e748599200ca3557d96328d895ee4679

See more details on using hashes here.

File details

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

File metadata

  • Download URL: maptrix-0.3.2-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.3.2-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e2ac6b2a1062d6e8b63ae71e99ac83b04969e3582d2dc900b9f5bc235d035ca5
MD5 2e23c039d6905d11504e9be2e0601ca9
BLAKE2b-256 0edcd41688453c65eb1c46c8c91431be951d410fd2a11bc2247749b0f9b38d54

See more details on using hashes here.

File details

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

File metadata

  • Download URL: maptrix-0.3.2-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.3.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6dab8aa82f1143f650137a9d91ab0d65df0519eac7e162f1620e31b2f931c502
MD5 8808bfd637795e11e1dcc728b881a0de
BLAKE2b-256 b754a74a61f89bb6ad728155ad9a81c0e5bcc974c2bdc9c025a958ab25e3589c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: maptrix-0.3.2-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.3.2-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d3d19172d5051f5fd49f3cbccb626cc7ea89d7361e1c1c7632f519554a13b08a
MD5 526b432b663b33bb08360e9c6741a181
BLAKE2b-256 2c376ddc03620b6a633d7ef899dc878f413d04c17b6ab973d3244183b578edf4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: maptrix-0.3.2-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.3.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9b5df9f12a2157243e9075fd3462ab9ebb62f0b93c228f99262213159a1f3487
MD5 89a89785bb3f195072fa334590482721
BLAKE2b-256 433683a1b0085247e66de5e3253f2c9275a29757271c27ec72e64a0412d7edba

See more details on using hashes here.

File details

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

File metadata

  • Download URL: maptrix-0.3.2-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.3.2-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3ac8be138be480ba8798a7a4c224d2257d94a1d3a774ffe8005d6ceb4f20690e
MD5 e1a665177b1e66e3fd47a1d5d4911ce2
BLAKE2b-256 50d311d50a679d0ad3b33925f75eb51e33923ed3a45424ba51ab52c433ae6bd3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: maptrix-0.3.2-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.3.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a6f4a6516fa0ea4cf2b6497c0f88004ee40eb92ec36ed3ae50d54aa9aa458753
MD5 15d55551e7621d66b54ce2c41d3c4c05
BLAKE2b-256 34503d26c864f4ff86007e0189c1ede962b2cdb9491586f5a61191d83f9288ef

See more details on using hashes here.

File details

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

File metadata

  • Download URL: maptrix-0.3.2-cp310-cp310-musllinux_1_2_x86_64.whl
  • Upload date:
  • Size: 1.7 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.3.2-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 350980d1d9432f73b933a74ffb6397d57cbf3b1d8219ecbb30c057162875a377
MD5 88b21d622c30a150c24346ca55e551e0
BLAKE2b-256 d8e3b5f34adef9ad5143c00e010fccc0f01cd83a541b5bf2c6a5747d6a4378c8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: maptrix-0.3.2-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.3.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ebc38e8a7c813ee040ed5136e5d56116b5a32d54dcf2b58fa090de48071a32e4
MD5 130b97366b62a9572504d7c280816eb9
BLAKE2b-256 76e4f9e727f94bfd15cc19b33e4c3e45a0a7e739014a9a4d2cf36d3768916cea

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