-
Notifications
You must be signed in to change notification settings - Fork 6
/
poly2bb.pl
35 lines (30 loc) · 818 Bytes
/
poly2bb.pl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/usr/bin/perl
# script to extract a polygon file's bbox
# output is in a form suitable for the Mapsforge map-writer "bbox" option
# written by Frederik Ramm <frederik@remote.org>, public domain
# adapted by devemux86
$maxx = -360;
$maxy = -360;
$minx = 360;
$miny = 360;
while(<>)
{
if (/^\s+([0-9.E+-]+)\s+([0-9.E+-]+)\s*$/)
{
my ($x, $y) = ($1, $2);
$maxx = $x if ($x>$maxx);
$maxy = $y if ($y>$maxy);
$minx = $x if ($x<$minx);
$miny = $y if ($y<$miny);
}
}
$buffer = 0.1;
$miny = $miny - $buffer;
$miny = $miny < -90 ? -90 : $miny;
$minx = $minx - $buffer;
$minx = $minx < -180 ? -180 : $minx;
$maxy = $maxy + $buffer;
$maxy = $maxy > 90 ? 90 : $maxy;
$maxx = $maxx + $buffer;
$maxx = $maxx > 180 ? 180 : $maxx;
printf "%f,%f,%f,%f\n", $miny, $minx, $maxy, $maxx;