#!/usr/bin/perl # # nothink.org # # Simple script to extract data from gpsdrive's db and build a "kml" file for Google Earth. # Based on gpsdriveToGoogleEarth.py by Jkx; # # Info: http://earth.google.com/kml/kml_tut.html # use strict; use DBI; $|=1; my $out = $ARGV[0]; die "$0 test.kml\n" if !$out; my $db_name = "geoinfo"; my $db_host = "127.0.0.1"; my $db_user = "user"; my $db_pass = "pass"; my $name = ""; my $lon = ""; my $lat = ""; my $wep = ""; my $mac = ""; my $dsn = "DBI:mysql:database=$db_name;host=$db_host;"; my $dbh = DBI->connect($dsn, $db_user, $db_pass, { PrintError => 1, AutoCommit => 1 }); my $sql = "select name,lon,lat,type,macaddr from waypoints"; my $sth = $dbh->prepare($sql) or die("Error: couldn't prepare select..."); $sth->execute; print "creating file... "; open (OUT, ">$out") || die "Error: cannot open the output file \'$out\': $!\n"; print OUT "\n"; print OUT "\n"; print OUT "\n"; print OUT "BrestWireless\n"; print OUT "1\n\n"; while (($name,$lat,$lon,$wep,$mac) = $sth->fetchrow_array) { print OUT " \n"; $name =~ s/\&+/e/; print OUT " $name\n"; print OUT " $mac\n"; print OUT " \n"; print OUT " $lat\n"; print OUT " $lon\n"; print OUT " \n"; print OUT " 1\n"; print OUT " root://styleMaps#default?iconId=0x307\n"; if ($wep =~ /WLAN-WEP/){ print OUT " \n"; } else { print OUT " \n"; } print OUT " $lat,$lon\n"; print OUT " \n"; } print OUT "\n"; print OUT "\n"; close OUT; $sth->finish(); $dbh->disconnect; print "done!\n"; exit(0);