skip to navigation
skip to content

Not Logged In

mercantile 0.2

Spherical mercator and XYZ tile utilities

Latest Version: 0.8.3

Spherical mercator coordinate and tile utilities

The mercantile module provides ul(xtile, ytile, zoom) and bounds(xtile, ytile, zoom) functions that return longitudes and latitudes for XYZ tiles, and a xy(lon, lat) function that returns spherical mercator x and y coordinates.

>>> import mercantile
>>> mercantile.ul(486, 332, 10)
(-9.140625, 53.33087298301705)
>>> mercantile.bounds(486, 332, 10)
(-9.140625, 53.12040528310657, -8.7890625, 53.33087298301705)
>>> mercantile.xy(*mercantile.ul(486, 332, 10))
(-1017529.7205322663, 7044436.526761846)

Mercantile CLI

Mercantile’s command line interface, named “mercantile”, has commands for getting the shapes of Web Mercator tiles as GeoJSON and getting the tiles that intersect with a GeoJSON bounding box. They can be combined like this:

$ echo "[-104.99, 39.99, -105, 40]" \
> | mercantile tiles - 14 \
> | mercantile shapes -
{"features": [{"geometry": {"coordinates": [[[-105.00732421875, 39.9939556939733], [-105.00732421875, 40.01078714046552], [-104.9853515625, 40.01078714046552], [-104.9853515625, 39.9939556939733], [-105.00732421875, 39.9939556939733]]], "type": "Polygon"}, "id": "(3413, 6202, 14)", "properties": {"title": "XYZ tile (3413, 6202, 14)"}, "type": "Feature"}, {"geometry": {"coordinates": [[[-105.00732421875, 39.977120098439634], [-105.00732421875, 39.9939556939733], [-104.9853515625, 39.9939556939733], [-104.9853515625, 39.977120098439634], [-105.00732421875, 39.977120098439634]]], "type": "Polygon"}, "id": "(3413, 6203, 14)", "properties": {"title": "XYZ tile (3413, 6203, 14)"}, "type": "Feature"}], "type": "FeatureCollection"}

If you have geojsonio-cli installed, you can shoot this GeoJSON straight to geojson.io for lightning-fast visualization and editing.

$ echo "[-104.99, 39.99, -105, 40]" \
> | mercantile tiles - 14 \
> | mercantile shapes - --compact \
> | geojsonio

See Also

node-sphericalmercator provides many of the same features for Node.

 
File Type Py Version Uploaded on Size
mercantile-0.2.tar.gz (md5) Source 2014-08-19 5KB
  • Downloads (All Versions):
  • 145 downloads in the last day
  • 668 downloads in the last week
  • 14037 downloads in the last month