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.3.1-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.1-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.1-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.1-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.1-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.1-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.1-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.1-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.1-cp310-cp310-musllinux_1_2_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

maptrix-0.3.1-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.1-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

  • Download URL: maptrix-0.3.1-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.1-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f789618768ac0650e6b24e8233f234d215239f4ece24ce0672b193e3265a913b
MD5 a38fa95d9d0d622b228d0d47a2a49917
BLAKE2b-256 8bbe2103ea54c60436f5143e35e5de2af64b01c57bd7d2c4743cc05ae6d33eff

See more details on using hashes here.

File details

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

File metadata

  • Download URL: maptrix-0.3.1-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.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2eb02741ef3e9dfe6b6e1dfadf42b5e469665abe449663aeabcc0fbd9462493c
MD5 19a06bfe131ee7c1498375c1ca2d7338
BLAKE2b-256 0a065b1b391693da23463bd0fae9d64d3ec27c038e21e39625d2000db4df590a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: maptrix-0.3.1-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.1-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2e59375dce688e0a08216d64053f3608f5eb6e4f52b22bbe956d038af90ade8e
MD5 90710788ab71f624374de61b60fd0667
BLAKE2b-256 03bbeaa89250b81514447ef762538bcd119cc1b8db57b336209bce8ddb5c7ea1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: maptrix-0.3.1-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.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 225ee70a610f97e99365b178f2d74cc380309ad45ff0288c1e692f3372b5a248
MD5 d618e3b294b5138efe668f7d64413193
BLAKE2b-256 6fbcd90dfc91b10d8ea4acba722cca3dadd2e45fa42e92a343d8fa0cecd143bf

See more details on using hashes here.

File details

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

File metadata

  • Download URL: maptrix-0.3.1-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.1-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e37be440986cd48b17b369f6b35fbe4c31181482fb9f96ade74667968a88d66a
MD5 a7cd7010135d7998aefa28f44270ac50
BLAKE2b-256 0af8b792476680aa830cb4dc47858b4a1a69d7b9153e59f02fe443f6d391f54b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: maptrix-0.3.1-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.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7304fc449dcb19ca6c97ec962f897e895fdafbc8ea2581c2cf12761189af0007
MD5 d9a0ba4f35a412668261d8415fbe7eae
BLAKE2b-256 26f7eace8985d3a82c1dbb4c981c9727a0e0c27b3a2dd7cc2ba6a43ac973a832

See more details on using hashes here.

File details

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

File metadata

  • Download URL: maptrix-0.3.1-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.1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 952d25d7eb25179efedd4b4605321ac03a9df9df21542df4cf8ef0532efb9f94
MD5 6cbe859b7da5a80cbdd3d3362aa892b3
BLAKE2b-256 e968a38bf0b771b05215569b7d82bf8171cd36cd488fff41330866f32d05c1d3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: maptrix-0.3.1-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.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b7132078fdb0b4c4eb4539c18d2af225b3e88f5d5d26ce285bc933d012478aba
MD5 0af4233f63f50e4dda00fb84f7904a42
BLAKE2b-256 0b9cdd8c97d6f6a7a06c7db83ad949905f22fe4a10810c50c122808e2d7ddef3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: maptrix-0.3.1-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.3.1-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9c90c6a59e7189b6d7961872c3383c6ae8540ea3c9ea4a21c17a06a8519f3e26
MD5 7bb88bee6448574c1ae08cb3d22bff53
BLAKE2b-256 05de7bde07b008c1227cd83c3dc603131293b8440e07312319e0506c688b158a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: maptrix-0.3.1-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.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8e5a8be9e2c8c2e649d5c89c62a237a85882cdfbd67ebfcb431c3ef350936624
MD5 82976fd02395352a7a946aae684e7654
BLAKE2b-256 ea9f3977e96f5b7826191d250c278e8db447a717890d8131b0f4e88999a45b1b

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