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
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c2d805fd90e90932773a5cf5847cefc8b7b9de8a047760e958a9fe743758bc63
|
|
| MD5 |
7b5d597224efdd1773626312d4592601
|
|
| BLAKE2b-256 |
cee2aa7a4b3819077820345a786370692eaaf5c3cb0b41f8000a07077c85e8b2
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5ac5a0498766448034338808554a5be60b5f7133b5211abb2b0d8044607d40e1
|
|
| MD5 |
8d23f6aa4d556839d8c30a5d3cfda232
|
|
| BLAKE2b-256 |
6d8d0908afa1b0017e63967e29fdfb44e748599200ca3557d96328d895ee4679
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e2ac6b2a1062d6e8b63ae71e99ac83b04969e3582d2dc900b9f5bc235d035ca5
|
|
| MD5 |
2e23c039d6905d11504e9be2e0601ca9
|
|
| BLAKE2b-256 |
0edcd41688453c65eb1c46c8c91431be951d410fd2a11bc2247749b0f9b38d54
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6dab8aa82f1143f650137a9d91ab0d65df0519eac7e162f1620e31b2f931c502
|
|
| MD5 |
8808bfd637795e11e1dcc728b881a0de
|
|
| BLAKE2b-256 |
b754a74a61f89bb6ad728155ad9a81c0e5bcc974c2bdc9c025a958ab25e3589c
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d3d19172d5051f5fd49f3cbccb626cc7ea89d7361e1c1c7632f519554a13b08a
|
|
| MD5 |
526b432b663b33bb08360e9c6741a181
|
|
| BLAKE2b-256 |
2c376ddc03620b6a633d7ef899dc878f413d04c17b6ab973d3244183b578edf4
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9b5df9f12a2157243e9075fd3462ab9ebb62f0b93c228f99262213159a1f3487
|
|
| MD5 |
89a89785bb3f195072fa334590482721
|
|
| BLAKE2b-256 |
433683a1b0085247e66de5e3253f2c9275a29757271c27ec72e64a0412d7edba
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3ac8be138be480ba8798a7a4c224d2257d94a1d3a774ffe8005d6ceb4f20690e
|
|
| MD5 |
e1a665177b1e66e3fd47a1d5d4911ce2
|
|
| BLAKE2b-256 |
50d311d50a679d0ad3b33925f75eb51e33923ed3a45424ba51ab52c433ae6bd3
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a6f4a6516fa0ea4cf2b6497c0f88004ee40eb92ec36ed3ae50d54aa9aa458753
|
|
| MD5 |
15d55551e7621d66b54ce2c41d3c4c05
|
|
| BLAKE2b-256 |
34503d26c864f4ff86007e0189c1ede962b2cdb9491586f5a61191d83f9288ef
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
350980d1d9432f73b933a74ffb6397d57cbf3b1d8219ecbb30c057162875a377
|
|
| MD5 |
88b21d622c30a150c24346ca55e551e0
|
|
| BLAKE2b-256 |
d8e3b5f34adef9ad5143c00e010fccc0f01cd83a541b5bf2c6a5747d6a4378c8
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ebc38e8a7c813ee040ed5136e5d56116b5a32d54dcf2b58fa090de48071a32e4
|
|
| MD5 |
130b97366b62a9572504d7c280816eb9
|
|
| BLAKE2b-256 |
76e4f9e727f94bfd15cc19b33e4c3e45a0a7e739014a9a4d2cf36d3768916cea
|