Tiles à la Google Maps: Coordinates, Tile Bounds and Projection

Click on a tile to display the numerical boundaries...

Want to create custom map tiles from an image or geodata?

MapTiler - tiling raster maps MapTiler application can generate map tiles from JPEG, TIFF and PNG images, from scanned maps, maps created in Photoshop or programatically. It is easy to assign location to the map (see video). GeoData with embedded location and standard GIS formats such as GeoTIFF, ECW, MrSID are fully supported. Maps are usable on the web, in mobile devices or desktop GIS.

Read more or directly download the app

Addressing tiles: same tile bounds with different indexes

Google Maps, Microsoft Virtual Earth, Yahoo Maps, and other commercial API providers as well as OpenStreetMap and OpenAerialMap are using the same projection and tiling profile and tiles are therefore compatible. The extents of all tiles as well as the zoom levels (resolution in meters per pixel) are predefined for the whole Earth.
Difference is only in the way how the equivalent tiles are indexed. There are three main systems of tile adressing: Google XYZ, Microsoft QuadTree and from the open-source world comming TMS (Tile Map Service).

  1. Google - described in the Google Maps API documentation
  2. TMS an variant of Google tile addressing, which is used in open-source projects like OpenLayers or TileCache. This system is described in the OSGEO Tile Map Service (TMS) Specification
  3. QuadTree - with documentation in the Virtal Earth Tile System from Microsoft

MapTiler/GDAL2Tiles (the tile generator application) is following the TMS specification, because there is not any standard for tiling yet, OGC (Open Geospatial Consorcium) is working on the WMTS (Web Map Tiling Service) which is inspired by TMS.

Spherical Mercator EPSG:900913 (EPSG:3857) and WGS84 Datum

The coordinates you use in the Google Maps API and which are presented to the users is Latitude/Longitude in WGS84 Datum (when directly projected by Platte Carre then it is referenced as EPSG:4326).
But for map publishing in the form compatible with all the popular interactive maps and especially for ground tile overlays you need to use Mercator map projection. Interactive web maps are using "Spherical Mercator" system which uses Mercator projection on the sphere instead of WGS84 ellipsoid. It is defined as EPSG:900913 or EPSG:3857 (deprecated EPSG:3785). Details about this system are part of Virtual Earth documentation as well as OpenLayers documentation. Exact numeric definition for GIS systems (in formats like WKT or Proj4), is available in the SpatialReference.org on-line database.

Links ...

Video: Creating Custom Maps with John Coryat

Spatial references, coordinate systems, projections, datums, ellipsoids – confusing?

Text from the poster

Source code for utility calculating tile bounds

I wrote a class GlobalMercator implementing all necessary coordinate system conversions in Python. The class is documented and quite straightforward.

You can also download the source code globalmaptiles.py and run it as a command line utility. It prints the list of tiles for given WGS84 lat/lon coordinates (or bounding box). For each tile several information is printed including boundaries in EPSG:900913 and WGS84:

	python globalmaptiles.py [zoom] [lat] [lon] 

Copyright © 2008 Klokan Petr Přidal