---
name: "Geo::OSM::Tiles"
section: "3pm"
platform: "linux"
package: "libgeo-osm-tiles-perl"
version: "0.04-7"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Geo::OSM::Tiles"
---

# Geo::OSM::Tiles(3pm)

Calculate tile numbers for OpenStreetMap

## 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.

## SEE ALSO

\<http://wiki.openstreetmap.org/wiki/Slippy\_map\_tilenames\>

## AUTHOR

Rolf Krahl \<rotkraut@cpan.org\>

## COPYRIGHT AND LICENCE

Copyright (C) 2008-2010 by Rolf Krahl

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available.
