.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.29) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "Geo::OSM::Tiles 3pm" .TH Geo::OSM::Tiles 3pm "2016-05-29" "perl v5.22.2" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Geo::OSM::Tiles \- Calculate tile numbers for OpenStreetMap .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& 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"; .Ve .SH "DESCRIPTION" .IX Header "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 \&\s-1OSM\s0 has the form \f(CW\*(C`$zoom/$tilex/$tiley.png\*(C'\fR. The numbering scheme is documented in the \s-1OSM\s0 wiki, see the link below. .ie n .SS """lon2tilex($lon, $zoom)""" .el .SS "\f(CWlon2tilex($lon, $zoom)\fP" .IX Subsection "lon2tilex($lon, $zoom)" Returns \f(CW$tilex\fR for the tile at longitude \f(CW$lon\fR and zoom level \&\f(CW$zoom\fR. The longitude must be in the range \f(CW\*(C`\-180.0 <= $lon < 180.0\*(C'\fR. The zoom level must be a non-negative integer. .ie n .SS """lat2tiley($lat, $zoom)""" .el .SS "\f(CWlat2tiley($lat, $zoom)\fP" .IX Subsection "lat2tiley($lat, $zoom)" Returns \f(CW$tiley\fR for the tile at latitude \f(CW$lat\fR and zoom level \&\f(CW$zoom\fR. The latitude must be in the range \f(CW\*(C`\-85.0511 <= $lat <= 85.0511\*(C'\fR. The zoom level must be a non-negative integer. .ie n .SS """tile2path($tilex, $tiley, $zoom)""" .el .SS "\f(CWtile2path($tilex, $tiley, $zoom)\fP" .IX Subsection "tile2path($tilex, $tiley, $zoom)" Composes the path to the tile at \f(CW$tilex\fR, \f(CW$tiley\fR, and \f(CW$zoom\fR at the \s-1OSM\s0 server. \f(CW$tilex\fR and \f(CW$tiley\fR must be integers in the range \&\f(CW\*(C`0..2**$zoom\-1\*(C'\fR. 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. .ie n .SS """checklonrange($lonmin, $lonmax)""" .el .SS "\f(CWchecklonrange($lonmin, $lonmax)\fP" .IX Subsection "checklonrange($lonmin, $lonmax)" Checks whether \f(CW$lonmin\fR and \f(CW$lonmax\fR are within the allowed range of the longitude argument to \f(CW\*(C`lon2tilex\*(C'\fR. Returns \&\f(CW\*(C`($lonmin, $lonmax)\*(C'\fR unchanged if they are ok or corrected values if not. .ie n .SS """checklatrange($latmin, $latmax)""" .el .SS "\f(CWchecklatrange($latmin, $latmax)\fP" .IX Subsection "checklatrange($latmin, $latmax)" Checks whether \f(CW$latmin\fR and \f(CW$latmax\fR are within the allowed range of the latitude argument to \f(CW\*(C`lat2tiley\*(C'\fR. Returns \&\f(CW\*(C`($latmin, $latmax)\*(C'\fR unchanged if they are ok or corrected values if not. .SH "SEE ALSO" .IX Header "SEE ALSO" .SH "AUTHOR" .IX Header "AUTHOR" Rolf Krahl .SH "COPYRIGHT AND LICENCE" .IX Header "COPYRIGHT AND LICENCE" Copyright (C) 2008\-2010 by Rolf Krahl .PP 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.