GunRunMaps/latlon2tile.pl

24 lines
737 B
Perl
Executable File

#!/usr/bin/perl
use strict;
use warnings;
use Math::Trig;
my $mb_token = 'pk.eyJ1IjoicmFndGFndGFnIiwiYSI6ImNpcnh3bnowbTAwMDUyemw1enBtbm50bTgifQ.WXKQzAfdJjsuQ6P6-BLZhg';
sub getTileNumber {
my ($lat,$lon,$zoom) = @_;
my $xtile = int( ($lon+180)/360 * 2**$zoom ) ;
my $ytile = int( (1 - log(tan(deg2rad($lat)) + sec(deg2rad($lat)))/pi)/2 * 2**$zoom ) ;
return ($xtile, $ytile);
}
if (scalar @ARGV == 3) {
my $z = $ARGV[2];
my ($x, $y) = getTileNumber($ARGV[0], $ARGV[1], $ARGV[2]);
print "x = $x y = $y z = $z\n";
print "https://api.tiles.mapbox.com/v4/mapbox.streets/$z/$x/$y.png?access_token=$mb_token\n";
print "https://api.tiles.mapbox.com/v4/mapbox.mapbox-streets-v7/$z/$x/$y.vector.pbf?access_token=$mb_token\n";
}