summaryrefslogtreecommitdiff
path: root/packages/gpsdrive/gpsdrive-2.10pre4/gpsdrive-2.10pre4-openstreetmap-download.patch
blob: 878cb1dba94474ad851650f629fdfcb2b6e5276c (plain)
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
diff -ur gpsdrive-2.10pre4.orig/scripts/gpsfetchmap.pl gpsdrive-2.10pre4/scripts/gpsfetchmap.pl
--- gpsdrive-2.10pre4.orig/scripts/gpsfetchmap.pl	2007-12-28 18:49:44.000000000 +0100
+++ gpsdrive-2.10pre4/scripts/gpsfetchmap.pl	2008-01-04 19:01:35.000000000 +0100
@@ -35,6 +35,7 @@
 modified (Jul 2005) by Jaroslaw Zachwieja <grok\@filippa.org.uk>
 modified (Dec 2005) by David Pollard <david dot pollard\@optusnet.com.au>
 modified (Jul 2007) by Maciek Kaliszewski <mkalkal\@interia.pl>
+modified (Jan 2008) by Gernot Hillier <gernot\@hillier.de> (added Openstreetmap support)
 Version svn-$Version
 ";
 
@@ -176,6 +177,25 @@
       15812 => 3 ,
       7906  => 2,
       3953 => 1
+    },
+    openstreetmap_tah => {
+      256*576000 =>  1,
+      128*576000 =>  2,
+       64*576000 =>  3,
+       32*576000 =>  4,
+       16*576000 =>  5,
+        8*576000 =>  6,
+        4*576000 =>  7,
+        2*576000 =>  8,
+          576000 =>  9,
+          288000 => 10,
+          144000 => 11,
+           72000 => 12,
+           36000 => 13,
+           18000 => 14,
+           9000  => 15,
+            4500 => 16,
+            2250 => 17
     }
 };
 
@@ -331,7 +351,6 @@
     exit();
 }
 
-
 # Verify that we have the options that we need 
 pod2usage(1) if (&error_check);
 
@@ -417,6 +436,13 @@
     print "+-----------------------------------------------------------+\n";
     print "| Landsat Maps are Copyright, .....   |\n";
     print "| They are free for non commercial use.                     |\n";
+}elsif ( $mapserver eq 'openstreetmap_tah' ){
+    print "+-----------------------------------------------------------+\n";
+    print "| OpenStreetmap Maps are Copyright by the OpenStreetmap     |\n";
+    print "| project.                                                  |\n";
+    print "| They are free for use under the terms of the              |\n";
+    print "| Creative Commons \"Attribution-Share Alike 2.0 Generic\"    |\n";
+    print "| license. See http://www.openstreetmap.org for details.    |\n";
 } elsif ( ! $force) {
     print "You are violating the map servers copyright!\n";
     print "Are you sure you want to continue? [y|n] ";
@@ -700,6 +726,11 @@
     {
 	($url,$mapscale)=googlemap_url($lati,$long,$scale);
     } 
+    elsif ( $mapserver eq 'openstreetmap_tah') 
+    {	
+	$filename=~s/\.gif/.png/;
+	($url,$mapscale)=openstreetmap_tah_url($lati,$long,$scale);
+    } 
     else 
     {
 	print "Unknown map sever :", $mapserver, "\n"; 
@@ -935,6 +966,37 @@
     return ($url,$mapscale);
 }
 
+#############################################################################
+sub openstreetmap_tah_url($$$){
+    my $lati = shift;
+    my $long = shift;
+    my $scale = shift;
+
+    my $mapscale = $scale;
+    my $zoom = undef;
+    for my $s ( sort keys %{$Scale2Zoom->{openstreetmap_tah}} ) {
+	next unless $s == $scale;
+	$zoom = $Scale2Zoom->{openstreetmap_tah}->{$s};
+	$mapscale = $s;
+	last;
+    }
+
+    unless ( $zoom ) {
+	print "Error calculating Zoomlevel for Scale: $scale\n";
+	return (undef,undef);
+    }
+
+    if ($debug) {
+	print "\n";
+	print "Using openstreetmap_tah zoom ", $zoom, " for requested scale ", $scale, ":1 actual scale ", $mapscale, ":1\n";
+	print "lat: $lati\n";
+	print "lon: $long\n";
+    }
+
+    my $url = "http://tah.openstreetmap.org/MapOf/?lat=$lati&long=$long&z=$zoom&w=1280&h=1024&format=png";
+#   print "$url\n";
+    return ($url,$mapscale);
+}
 
 #############################################################################
 sub eniro_url($$$){
@@ -2284,7 +2346,7 @@
 =item B<--mapserver <MAPSERVER>>
 
 Mapserver to download from. Default: 'expedia'.
-Currently can use: landsat or expedia.
+Currently usable: landsat, expedia or openstreetmap_tah.
 
 geoscience, gov_au, incrementp, googlesat, googlemap and eniro have download stubs, 
 but they are !!!NOT!!!! in the right scale.
@@ -2294,6 +2356,9 @@
 
 landsat covers the whole world with satelite Photos
 
+openstreetmap_tah: Free maps from the OpenStreetmap Tiles@Home project, see 
+		   http://www.openstreetmap.org and http://tah.openstreetmap.org.
+
 gov_au is for Australia
 
 incrementp for japanese Maps