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

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

maptrix-0.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (2.8 MB view details)

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

maptrix-0.3.0-cp313-cp313-musllinux_1_2_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

maptrix-0.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (2.8 MB view details)

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

maptrix-0.3.0-cp312-cp312-musllinux_1_2_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

maptrix-0.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (2.8 MB view details)

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

maptrix-0.3.0-cp311-cp311-musllinux_1_2_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

maptrix-0.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (2.8 MB view details)

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

maptrix-0.3.0-cp310-cp310-musllinux_1_2_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

maptrix-0.3.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (2.7 MB view details)

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

maptrix-0.3.0-cp39-cp39-musllinux_1_2_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

maptrix-0.3.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (2.7 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.3.0-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

  • Download URL: maptrix-0.3.0-cp314-cp314-musllinux_1_2_x86_64.whl
  • Upload date:
  • Size: 2.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.0-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 029fa8ef1d4922e690fed0abf94cdf5d146ef7e8b0e6fe49921c9a98e2e04767
MD5 4c7e62b2941c89fe92c26422d6df1141
BLAKE2b-256 1f57b0b783644473dc66c15d764838c279fa2ffc77c0874d45279ad9841b55aa

See more details on using hashes here.

File details

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

File metadata

  • Download URL: maptrix-0.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
  • Upload date:
  • Size: 2.8 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.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 794b389fc1e4099891424fd2cc8d8715422ca544fc40f6fa4a421614ee3051f0
MD5 5081e59a9832837be4d5db3fc2e1fa17
BLAKE2b-256 d718ddec746bbeb159fc5fda360c5b33b1db91bbe7478670fd0f16ee7743ac09

See more details on using hashes here.

File details

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

File metadata

  • Download URL: maptrix-0.3.0-cp313-cp313-musllinux_1_2_x86_64.whl
  • Upload date:
  • Size: 2.8 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.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d88d7941cd214267d6bdbe66539cb89ef7be1a77ca92419abb499737dd102fc4
MD5 1aeb8e9f8bc75f34146777e9418cf289
BLAKE2b-256 7da65d318a710118393d2fb1f0b2672f848387ea221d8fed35220e1aaa1804ee

See more details on using hashes here.

File details

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

File metadata

  • Download URL: maptrix-0.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
  • Upload date:
  • Size: 2.8 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.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 751a5b150a6194fc6cf4b0e53b5366ffa142731985944712b8e8e0ac98e7c72e
MD5 27f3a9c3f7f70bfb12c0695fe31d66f7
BLAKE2b-256 2a0812a2a43726aa991753d1df8557e11760457ea76e09d20b88c8757829ba70

See more details on using hashes here.

File details

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

File metadata

  • Download URL: maptrix-0.3.0-cp312-cp312-musllinux_1_2_x86_64.whl
  • Upload date:
  • Size: 2.8 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.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 bc29107081caffe7e5d52c208ccc4853e938b112cf75a47d510fb5e5a64533ac
MD5 faea8d698c5a2871f85e2cff1f863007
BLAKE2b-256 8c7c15463a457b79da4562ea8a701cc6b406c83c3d9d5db5ed99b9c9809a1022

See more details on using hashes here.

File details

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

File metadata

  • Download URL: maptrix-0.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
  • Upload date:
  • Size: 2.8 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.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d7103faa3887e7b6aeb9bb0931b31d0bf11698380fd51928210b0d9e3391a201
MD5 dd163b0c55142378294a96f1ccc5928d
BLAKE2b-256 0ea5cdb8ec0005c2c8ba7ac7ea24aadfdfd2fc4de3dec2558a3e91011014a439

See more details on using hashes here.

File details

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

File metadata

  • Download URL: maptrix-0.3.0-cp311-cp311-musllinux_1_2_x86_64.whl
  • Upload date:
  • Size: 2.8 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.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ec1a93e7005af9f2ed128a8c352c61de605bcd67a04dee1c2463afe36b59d91f
MD5 3a9f35f61edcb4ff65818642863674b0
BLAKE2b-256 5cb1eae2ca4afdc9693a5de9fbad992cbb8b99be98578efecb6e0c6c41d37278

See more details on using hashes here.

File details

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

File metadata

  • Download URL: maptrix-0.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
  • Upload date:
  • Size: 2.8 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.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 832692c2fba766f2c19c60da18001ff7bc78d2ed0b768853e4c4849d7fa7b7d0
MD5 1ca83ec01b4d1646e340d9d187486511
BLAKE2b-256 eeb0e1f6d9a460efba0f6b3d22be06cbf32a364c9008030a10a1f5adb5122038

See more details on using hashes here.

File details

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

File metadata

  • Download URL: maptrix-0.3.0-cp310-cp310-musllinux_1_2_x86_64.whl
  • Upload date:
  • Size: 2.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.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4bce9a09e892013f133030a792d7974f48a4c0f545c0c54d81842f97aad93e0a
MD5 5c6e474cf6d840b137363f07e7a6357d
BLAKE2b-256 b68acb077fec9d6d4f99764c0d701ba001500622fd646e9fd5c0357c18c55d94

See more details on using hashes here.

File details

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

File metadata

  • Download URL: maptrix-0.3.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
  • Upload date:
  • Size: 2.7 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.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 de7f797c135532d763f2f616c741a77279ffd18bcf341f7e46ed6ebb571da443
MD5 f17ed9b7c5c21374607b85d849d31e99
BLAKE2b-256 7c8a19ddff6461d77e998e6ed9a12b0c6e8df19325e30c8131cef725f274293b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: maptrix-0.3.0-cp39-cp39-musllinux_1_2_x86_64.whl
  • Upload date:
  • Size: 2.7 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.3.0-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a2d05781244d5f0b2e66524d550f7f1ed9fc26fa6f6a6458e988232c67ba553c
MD5 674d159deb08010c67024a955e099fda
BLAKE2b-256 27c1a9e313f047c8db1a8ddd28dbcdc78912f99fbf67f34d0e590ff8b8feeffc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: maptrix-0.3.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
  • Upload date:
  • Size: 2.7 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.3.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 620ced18c18118f05d3906d37a1049e74aa752195fe9073d4a0d2f952980304d
MD5 f942073149ea4c54b7ac888a7d9d8aa4
BLAKE2b-256 16047796a6c700e0596aa9740354bf7dbdcb9edbba70ba258a5c381ca06228da

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