Geo::OSM::Tiles(3pm) User Contributed Perl Documentation Geo::OSM::Tiles(3pm)

# NAME¶

Geo::OSM::Tiles - Calculate tile numbers for OpenStreetMap

# SYNOPSIS¶

```  use Geo::OSM::Tiles qw( :all );

\$zoom = 13;
\$lat = 49.60055;
\$lon = 11.01296;
\$tilex = lon2tilex(\$lon, \$zoom);
\$tiley = lat2tiley(\$lat, \$zoom);
\$path = tile2path(\$tilex, \$tiley, \$zoom);
\$tileurl = "http://tile.openstreetmap.org/\$path";
```

# DESCRIPTION¶

This module provides functions for calculating the path to a map tile at OpenStreetMap out of geographic coordinates. The path of a tile at OSM has the form "\$zoom/\$tilex/\$tiley.png". The numbering scheme is documented in the OSM wiki, see the link below.

## "lon2tilex(\$lon, \$zoom)"¶

Returns \$tilex for the tile at longitude \$lon and zoom level \$zoom. The longitude must be in the range "-180.0 <= \$lon < 180.0". The zoom level must be a non-negative integer.

## "lat2tiley(\$lat, \$zoom)"¶

Returns \$tiley for the tile at latitude \$lat and zoom level \$zoom. The latitude must be in the range "-85.0511 <= \$lat <= 85.0511". The zoom level must be a non-negative integer.

## "tile2path(\$tilex, \$tiley, \$zoom)"¶

Composes the path to the tile at \$tilex, \$tiley, and \$zoom at the OSM server. \$tilex and \$tiley must be integers in the range "0..2**\$zoom-1". The supported range of zoom levels depends on the tile server. The maximum zoom for the Osmarender layer is 17, it is 18 for the Mapnik layer.

## "checklonrange(\$lonmin, \$lonmax)"¶

Checks whether \$lonmin and \$lonmax are within the allowed range of the longitude argument to "lon2tilex". Returns "(\$lonmin, \$lonmax)" unchanged if they are ok or corrected values if not.

## "checklatrange(\$latmin, \$latmax)"¶

Checks whether \$latmin and \$latmax are within the allowed range of the latitude argument to "lat2tiley". Returns "(\$latmin, \$latmax)" unchanged if they are ok or corrected values if not.

<http://wiki.openstreetmap.org/wiki/Slippy_map_tilenames>

# AUTHOR¶

Rolf Krahl <rotkraut@cpan.org>