gps
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 62
GPS::PRN 0.05
GPS::PRN is a package for PRN - Object ID conversions. more>>
GPS::PRN is a package for PRN - Object ID conversions.
SYNOPSIS
use GPS::PRN;
my $obj = GPS::PRN->new();
print "PRN: ", $obj->prn_oid(22231), "n";
print "OID: ", $obj->oid_prn(1), "n";
This module maps GPS PRN number to Satellite OID and vice versa.
Object Identification Number (OID)
The catalog number assigned to the object by the US Air Force. The numbers are assigned sequentially as objects are cataloged. This is the most common way to search for TLE data on this site.
Object numbers less then 10000 are always aligned to the right, and padded with zeros or spaces to the left.
Pseudo Random Numbers (PRNs)
GPS satellites are identified by the receiver by means of PRN-numbers. Real GPS satellites are numbered from 1 - 32. WAAS/EGNOS satellites and other pseudolites are assigned higher numbers. The PRN-numbers of the satellites appear on the satellite view screens of many GPS receivers.
METHODS
prn_oid
PRN given Object ID.
my $prn=prn_oid(22231);
oid_prn
Object ID given PRN.
my $oid=oid_prn(1);
listprn
List all known PRNs.
my @prn=$obj->listprn;
my $prn=$obj->listprn;
listoid
List all known OIDs.
my @oid=$obj->listoid;
my $oid=$obj->listoid;
data
OID to PRN hash reference
my $data=$self->data;
overload
Adds or overloads new OID/PRN pairs.
$obj->overload($oid=>$prn);
reset
Resets overloaded OID/PRN pairs to package defaults.
$obj->reset;
<<lessSYNOPSIS
use GPS::PRN;
my $obj = GPS::PRN->new();
print "PRN: ", $obj->prn_oid(22231), "n";
print "OID: ", $obj->oid_prn(1), "n";
This module maps GPS PRN number to Satellite OID and vice versa.
Object Identification Number (OID)
The catalog number assigned to the object by the US Air Force. The numbers are assigned sequentially as objects are cataloged. This is the most common way to search for TLE data on this site.
Object numbers less then 10000 are always aligned to the right, and padded with zeros or spaces to the left.
Pseudo Random Numbers (PRNs)
GPS satellites are identified by the receiver by means of PRN-numbers. Real GPS satellites are numbered from 1 - 32. WAAS/EGNOS satellites and other pseudolites are assigned higher numbers. The PRN-numbers of the satellites appear on the satellite view screens of many GPS receivers.
METHODS
prn_oid
PRN given Object ID.
my $prn=prn_oid(22231);
oid_prn
Object ID given PRN.
my $oid=oid_prn(1);
listprn
List all known PRNs.
my @prn=$obj->listprn;
my $prn=$obj->listprn;
listoid
List all known OIDs.
my @oid=$obj->listoid;
my $oid=$obj->listoid;
data
OID to PRN hash reference
my $data=$self->data;
overload
Adds or overloads new OID/PRN pairs.
$obj->overload($oid=>$prn);
reset
Resets overloaded OID/PRN pairs to package defaults.
$obj->reset;
Download (0.004MB)
Added: 2007-05-17 License: Perl Artistic License Price:
893 downloads
GPSdings 0.2
GPSdings is a java 1.5 command line tool for the manipulation and analysis of track and waypoint data recorded with a gps. more>>
GPSdings is a java 1.5 command line tool for the manipulation and analysis of track and waypoint data recorded with a gps receiver. This project is free software (GPL).
USAGE: gpsdings < application > [arguments]
Known applications are:
gpxovl : Converts between GPX and OVL formats.
gpxkml : Converts GPX to KML.
googlemap : Converts GPX to Google Maps API Javascript.
exifloc : Finds the geolocation of digital camera pictures.
trackanalyzer : Analyzes GPS tracks (speed, distance, ...)
For help on a specific application use
gpsdings < application >
<<lessUSAGE: gpsdings < application > [arguments]
Known applications are:
gpxovl : Converts between GPX and OVL formats.
gpxkml : Converts GPX to KML.
googlemap : Converts GPX to Google Maps API Javascript.
exifloc : Finds the geolocation of digital camera pictures.
trackanalyzer : Analyzes GPS tracks (speed, distance, ...)
For help on a specific application use
gpsdings < application >
Download (3.7MB)
Added: 2007-07-05 License: GPL (GNU General Public License) Price:
841 downloads
GPSMap 0.5.2
GPSMap is a Java application that displays maps and shows your position with the aid of a GPS device. more>>
GPSMap is a Java application that displays maps and shows your position with the aid of a GPS device.
GPSMap project can track paths, load overlays (such as shape files), and download maps from the MapBlast and Expedia servers.
Enhancements:
- Serial communication on Windows systems was fixed.
- Installation of the serial Java library is not necessary anymore, as long as you use the start scripts (available for Windows and Unix systems).
- The ability to export track data in gpx format was added.
- Some bugs with graphics were fixed (only on Windows systems).
<<lessGPSMap project can track paths, load overlays (such as shape files), and download maps from the MapBlast and Expedia servers.
Enhancements:
- Serial communication on Windows systems was fixed.
- Installation of the serial Java library is not necessary anymore, as long as you use the start scripts (available for Windows and Unix systems).
- The ability to export track data in gpx format was added.
- Some bugs with graphics were fixed (only on Windows systems).
Download (4.4MB)
Added: 2006-10-23 License: GPL (GNU General Public License) Price:
1156 downloads
Download (1.1MB)
Added: 2007-06-14 License: GPL (GNU General Public License) Price:
874 downloads
GPS::Babel 0.0.1
GPS::Babel is a Perl interface to gpsbabel. more>>
GPS::Babel is a Perl interface to gpsbabel.
SYNOPSIS
use GPS::Babel;
my $babel = GPS::Babel->new();
# Read an OZIExplorer file into a data structure
my $data = $babel->read(route.ozi, ozi);
# Convert a file automatically choosing input and output
# format based on extension
$babel->convert(points.wpt, points.gpx, { all => 1 });
# Call gpsbabel directly
$babel->direct(qw(gpsbabel -i saroute,split
-f in.anr -f in2.anr -o an1,type=road -F out.an1));
From http://gpsbabel.org/:
GPSBabel converts waypoints, tracks, and routes from one format to
another, whether that format is a common mapping format like
Delorme, Streets and Trips, or even a serial upload or download to a
GPS unit such as those from Garmin and Magellan. By flattening the
Tower of Babel that the authors of various programs for manipulating
GPS data have imposed upon us, it returns to us the ability to
freely move our own waypoint data between the programs and hardware
we choose to use.
As I write this gpsbabel supports 96 various GPS related data formats. In addition to file conversion it supports upload and download to a number of serial and USB devices. This module provides a (thin) wrapper around the gpsbabel binary making it easier to use in a perlish way.
GPSBabel supports many options including arbitrary chains of filters, merging data from multiple files and many format specific parameters. This module doesnt attempt to provide an API wrapper around all these options. It does however provide for simple access to the most common operations. For more complex cases a passthrough method (direct) passes its arguments directly to gpsbabel with minimal preprocessing.
GPSBabel is able to describe its built in filters and formats and enumerate the options they accept. This information is available as a perl data structure which may be used to construct a dynamic user interface that reflects the options available from the gpsbabel binary.
<<lessSYNOPSIS
use GPS::Babel;
my $babel = GPS::Babel->new();
# Read an OZIExplorer file into a data structure
my $data = $babel->read(route.ozi, ozi);
# Convert a file automatically choosing input and output
# format based on extension
$babel->convert(points.wpt, points.gpx, { all => 1 });
# Call gpsbabel directly
$babel->direct(qw(gpsbabel -i saroute,split
-f in.anr -f in2.anr -o an1,type=road -F out.an1));
From http://gpsbabel.org/:
GPSBabel converts waypoints, tracks, and routes from one format to
another, whether that format is a common mapping format like
Delorme, Streets and Trips, or even a serial upload or download to a
GPS unit such as those from Garmin and Magellan. By flattening the
Tower of Babel that the authors of various programs for manipulating
GPS data have imposed upon us, it returns to us the ability to
freely move our own waypoint data between the programs and hardware
we choose to use.
As I write this gpsbabel supports 96 various GPS related data formats. In addition to file conversion it supports upload and download to a number of serial and USB devices. This module provides a (thin) wrapper around the gpsbabel binary making it easier to use in a perlish way.
GPSBabel supports many options including arbitrary chains of filters, merging data from multiple files and many format specific parameters. This module doesnt attempt to provide an API wrapper around all these options. It does however provide for simple access to the most common operations. For more complex cases a passthrough method (direct) passes its arguments directly to gpsbabel with minimal preprocessing.
GPSBabel is able to describe its built in filters and formats and enumerate the options they accept. This information is available as a perl data structure which may be used to construct a dynamic user interface that reflects the options available from the gpsbabel binary.
Download (0.010MB)
Added: 2007-01-18 License: Perl Artistic License Price:
1011 downloads
GPS::Lowrance 0.31
GPS::Lowrance is a Perl module connect to Lowrance and Eagle GPS devices. more>>
GPS::Lowrance is a Perl module connect to Lowrance and Eagle GPS devices.
REQUIREMENTS
The following modules are required to use this module:
Carp::Assert
GPS::Lowrance::LSI 0.23
Parse::Binary::FixedFormat
Win32::SerialPort or Device::SerialPort
If you will be using the "get_plot_trails", "set_plot_trails", "set_waypoints" or "get_waypoints" methods, then you will need the following modules:
GPS::Lowrance::Trail 0.41
Geo::Coordinates::DecimalDegrees
Geo::Coordinates::UTM
XML::Generator
If you want to use the screen capture or icon download functions in GPS::Lowrance::Screen, you also need the following module:
GD
This module should work with Perl 5.6.x. It has been tested on Perl 5.8.2.
SYNOPSIS ^
use GPS::Lowrance;
use GPS::Lowrance::Trail;
$gps = GPS::Lowrance->connect(
Device => com1,
BaudRate => 57600,
);
$trail = $gps->get_plot_trail( plot_trail_number => 0 );
$gps->disconnect;
This module provides a variety of low- and high-level methods for communicating with Lowrance and Eagle GPS receivers which support the LSI 100 protocol. It also provides some utility functions for converting data.
<<lessREQUIREMENTS
The following modules are required to use this module:
Carp::Assert
GPS::Lowrance::LSI 0.23
Parse::Binary::FixedFormat
Win32::SerialPort or Device::SerialPort
If you will be using the "get_plot_trails", "set_plot_trails", "set_waypoints" or "get_waypoints" methods, then you will need the following modules:
GPS::Lowrance::Trail 0.41
Geo::Coordinates::DecimalDegrees
Geo::Coordinates::UTM
XML::Generator
If you want to use the screen capture or icon download functions in GPS::Lowrance::Screen, you also need the following module:
GD
This module should work with Perl 5.6.x. It has been tested on Perl 5.8.2.
SYNOPSIS ^
use GPS::Lowrance;
use GPS::Lowrance::Trail;
$gps = GPS::Lowrance->connect(
Device => com1,
BaudRate => 57600,
);
$trail = $gps->get_plot_trail( plot_trail_number => 0 );
$gps->disconnect;
This module provides a variety of low- and high-level methods for communicating with Lowrance and Eagle GPS receivers which support the LSI 100 protocol. It also provides some utility functions for converting data.
Download (0.022MB)
Added: 2007-03-08 License: Perl Artistic License Price:
964 downloads
PyGpsWeb 0.1.0
PyGpsWeb is an online GPS (Global Positionning System) data editor. more>>
PyGpsWeb is an online GPS (Global Positionning System) data editor. PyGpsWeb allows you to view and edit waypoints, routes, and tracks. It is free software, released under the terms of the GPL.
ScreenshotNo, this is not vaporware. Far from being finished, but the basis are here.
I need this to view and/or edit points and path, imported and/or exported to a lightweight GPS device.
This is because I run a lot. Basically I could do this with GPSMan, but the idea is to do this with a web application, using interesting technologies like Python, PostGreSQL / PostGIS, itools, UMN MapServer, Mozilla / XUL and Google Maps. My purpose is to fit my needs as well as to have fun and prove myself that I can code this kind of things 8-)
<<lessScreenshotNo, this is not vaporware. Far from being finished, but the basis are here.
I need this to view and/or edit points and path, imported and/or exported to a lightweight GPS device.
This is because I run a lot. Basically I could do this with GPSMan, but the idea is to do this with a web application, using interesting technologies like Python, PostGreSQL / PostGIS, itools, UMN MapServer, Mozilla / XUL and Google Maps. My purpose is to fit my needs as well as to have fun and prove myself that I can code this kind of things 8-)
Download (0.12MB)
Added: 2005-11-23 License: GPL (GNU General Public License) Price:
1431 downloads
GPSBabel 1.3.4
GPSBabel converts waypoints, tracks, and routes between popular GPS receivers and mapping programs. more>>
GPSBabel converts waypoints, tracks, and routes between popular GPS receivers and mapping programs. It also has powerful manipulation tools for such data.
By flattening the Tower of Babel that the authors of various programs for manipulating GPS data have imposed upon us, it returns to us the ability to freely move our own waypoint data between the programs and hardware we choose to use.
It contains extensive data manipulation abilities making it a convenient for server-side processing or as the backend for other tools.
This application does not convert, transfer, send, or manipulate maps. We process data that may (or may not be) placed on a map, such as waypoints, tracks, and routes.
Enhancements:
New formats:
- Vitovtt tracks
- NMEA and XSV realtime tracking output.
- G7towin .g7t.
- TomTom POI ascii files.
- TomTom Iteneraries.
- Garmin POI gpi files.
- Geogrid viewer for tracklogs.
New features:
- Multiple URL support in GDB and GPX.
- Enhancements to KML output for Google Earth.
- Support for Wintec/G-ray/WBT 201.
- Mac GUI support for Wintec models.
- Microsecond resolution in many formats.
- Enhance NMEA reader to handle Sony GPS and GISTeq.
- Many enhancements to Unicsv format.
- Hungarian translation of Windows GUI.
Major fixes:
- Reworked GDB suport.
- Improvements to Raymarine.
- TourExchangeFormat overhauled.
- Enhancements to Google Map reader.
- Rebuilt OS/X version with newer libusb to correct Garmin USB problem on 10.4.10.
<<lessBy flattening the Tower of Babel that the authors of various programs for manipulating GPS data have imposed upon us, it returns to us the ability to freely move our own waypoint data between the programs and hardware we choose to use.
It contains extensive data manipulation abilities making it a convenient for server-side processing or as the backend for other tools.
This application does not convert, transfer, send, or manipulate maps. We process data that may (or may not be) placed on a map, such as waypoints, tracks, and routes.
Enhancements:
New formats:
- Vitovtt tracks
- NMEA and XSV realtime tracking output.
- G7towin .g7t.
- TomTom POI ascii files.
- TomTom Iteneraries.
- Garmin POI gpi files.
- Geogrid viewer for tracklogs.
New features:
- Multiple URL support in GDB and GPX.
- Enhancements to KML output for Google Earth.
- Support for Wintec/G-ray/WBT 201.
- Mac GUI support for Wintec models.
- Microsecond resolution in many formats.
- Enhance NMEA reader to handle Sony GPS and GISTeq.
- Many enhancements to Unicsv format.
- Hungarian translation of Windows GUI.
Major fixes:
- Reworked GDB suport.
- Improvements to Raymarine.
- TourExchangeFormat overhauled.
- Enhancements to Google Map reader.
- Rebuilt OS/X version with newer libusb to correct Garmin USB problem on 10.4.10.
Download (3.2MB)
Added: 2007-08-21 License: GPL (GNU General Public License) Price:
512 downloads
Net::GPSD 0.35
Net::GPSD is a Perl module that provides an object client interface to the gpsd server daemon. more>>
Net::GPSD is a Perl module that provides an object client interface to the gpsd server daemon.
SYNOPSIS
use Net::GPSD;
$obj=Net::GPSD->new;
my $point=$obj->get;
print $point->latlon. "n";
or
use Net::GPSD;
$obj=Net::GPSD->new;
$obj->subscribe();
Net::GPSD provides an object client interface to the gpsd server daemon. gpsd is an open source GPS deamon from http://gpsd.berlios.de/.
For example the get method returns a blessed hash reference like
{S=>[?|0|1|2],
P=>[lat,lon]}
Fortunately, there are various methods that hide this hash from the user.
<<lessSYNOPSIS
use Net::GPSD;
$obj=Net::GPSD->new;
my $point=$obj->get;
print $point->latlon. "n";
or
use Net::GPSD;
$obj=Net::GPSD->new;
$obj->subscribe();
Net::GPSD provides an object client interface to the gpsd server daemon. gpsd is an open source GPS deamon from http://gpsd.berlios.de/.
For example the get method returns a blessed hash reference like
{S=>[?|0|1|2],
P=>[lat,lon]}
Fortunately, there are various methods that hide this hash from the user.
Download (0.015MB)
Added: 2007-04-04 License: Perl Artistic License Price:
936 downloads
GPS Tracker 0.3.1
GPS Tracker project allows someone to track a GPS enabled cell phone using Google maps. more>>
GPS Tracker project allows someone to track a GPS enabled cell phone using Google maps. For this project I used a Motorola i355 cell phone on the Sprint/Nextel network.
You need to have a data plan so that you can make updates to your website from the cellphone. Please read the ReadMe.txt file in the download for installation instructions. I hope you enjoy the project. If you have any questions, feel free ask them in the forum.
There are two projects available. The first project is built with .NET and Microsoft SQL Server. The second project is built with PHP and MySQL. If you have any suggestions, please feel free to let me know. Both projects use java (J2ME) on the phone.
How It Works:
None of the code for this project is very difficult, but it does span a number of tiers and languages which may be unfamiliar to some. Figure 1 shows the data flow from phone to Google map.
Phone
Lets start with the code on the phone. This app is written in java using Java 2 Micro Edition (J2ME). Java is very similar to C#. As you look through the code, the only thing that might confuse a C# coder is the vector. A java vector is pretty much a C# ArrayList, a dynamic array. There are 2 classes in the app, LBSMidlet7 and Qworker. A midlet is an app that runs on cell phones. Take a look at the class definition. It extends the MIDlet class and implements a LocationListener interface. That means that we need to put all the method definitions of that interface into our class. Well get to that in a bit, right now lets look at the constructor.
We do 2 things in the constructor. We create a QWorker object and pass it "this" and the website that we will be uploading to. The getAppProperty method gets attributes out of the JAD file. Open the JAD file in your favorite text editor and there youll see the webpage that youll be sending GPS data to. Notice how were passing "this" to the GWorker object? Thats the LBSMidlet7 object. Take a quick look at the QWorker class, it extends the Thread class. Thats why we call worker.start() in the LBSMidlet7 constructor. We want to start our worker thread.
When you start a thread, what you are doing is creating an object and then running that objects run() method. Take a look at the run method. It has an endless loop and in the loop the first thing it does is call queue.wait(). Look at the definition of the queue. The queue is an abstract data type (ADT), it just like a queue at a bank, enter the queue at the back of the line and leave the queue when you get to the front of the line. Look at the definition of the queue, its our vector (dynamic array). When you call wait() on an object within a class that extends the Thread class, it puts that object to sleep. Think about that a little. When we hit that line, our QWorker object is now waiting... Whats it waiting for? Well get to that in a minute. Before we do that, take a look at the synchronized keyword. Notice that its wrapping the queue. What that does is it puts a lock on the queue and tells all other processes not to touch the queue until that little block of code is done with it.
Ok, so now weve started a worker thread and put it to sleep. Lets now go back to the LBSMidlet7 class and take a look at the startApp() method. In the lifecycle of a midlet, the constructor is called once and then the startApp() method is called next. In fact it can be called several times, like for instance when you close a flip phone and then open it again. What happens is that the app is suspended and when you flip the phone open again, startApp() is called again. In startApp(), we get our display and then we create a LocationProvider if one hasnt already been created and we create another thread... Why are we creating all these threads? Good question. When a midlet (app) is suspended, the backgroud threads that are created keep running. That allows us to get our GPS data and send it to our webserver while we do other important stuff, like make phone calls.
The LocationProvider is what gets our GPS data. First we create a criteria, were using the default, but you can set stuff like accuracy, response time etc. Next we create our Location Listener. Its pretty much just what it sounds like. Here you can set the interval for how often you want to get GPS data. Its currently set to 60 which is in seconds. When data comes in, the locationUpdated() method is called. This is another one of the required methods in the LocationListener interface. Here we create yet another thread and call getLocation(). The getLocation() method gets the GPS coordinates, creates a queryString which we will send to the web server a little later and then calls worker.addToQueue in the QWorker class.
Lets go back over to the QWorker class and see what happens in that method. It add the queryString to the queue and then calls queue.notify(). Guess what queue.notify() does? It wakes up our sleeping QWorker thread and tells it to get to work! Notice that our calls to the queue are once again wrapped in a synchronized block. Please practice safe threading... When notify() is called on a thread, what it does is go back to the run() method and execute the next line of code right after where we told the queue to wait(). So now we are just about ready to send the GPS data to the web server. We have a couple of interesting lines of code there. First we call peekInQueue() which gets the queryString out of the queue but leaves it there for now. Then it sends the queryString to the getUrl method which attempts to send the queryString to our web server. If its successful, we can remove the queryString from the queue. If not, we leave the queryString in the queue and try to send it to the webserver again later.
Why in the world do we have this complicated queue here? Im glad you asked. There may be times when you are receiving GPS data but are not actually in an area that has a cell phone connection. If we dont have a cell phone connection, we cant send our GPS data to our web server. So we stick our queryString in our queue and wait until we get back into an area with cell phone connectability. Can you hear me now?
Well, weve spent a pretty fair bit of time explaining the phone code. Its a little complicated but its important to know whats going on if you want to take the code and make modifications to it to suit your needs. Heres a good article on the Sun website to let you know about more capabilities of the Location Based Services API. Right about now, our queryString should be arriving at our website, lets catch up to it and see what happens.
Enhancements:
- Added comments to code
<<lessYou need to have a data plan so that you can make updates to your website from the cellphone. Please read the ReadMe.txt file in the download for installation instructions. I hope you enjoy the project. If you have any questions, feel free ask them in the forum.
There are two projects available. The first project is built with .NET and Microsoft SQL Server. The second project is built with PHP and MySQL. If you have any suggestions, please feel free to let me know. Both projects use java (J2ME) on the phone.
How It Works:
None of the code for this project is very difficult, but it does span a number of tiers and languages which may be unfamiliar to some. Figure 1 shows the data flow from phone to Google map.
Phone
Lets start with the code on the phone. This app is written in java using Java 2 Micro Edition (J2ME). Java is very similar to C#. As you look through the code, the only thing that might confuse a C# coder is the vector. A java vector is pretty much a C# ArrayList, a dynamic array. There are 2 classes in the app, LBSMidlet7 and Qworker. A midlet is an app that runs on cell phones. Take a look at the class definition. It extends the MIDlet class and implements a LocationListener interface. That means that we need to put all the method definitions of that interface into our class. Well get to that in a bit, right now lets look at the constructor.
We do 2 things in the constructor. We create a QWorker object and pass it "this" and the website that we will be uploading to. The getAppProperty method gets attributes out of the JAD file. Open the JAD file in your favorite text editor and there youll see the webpage that youll be sending GPS data to. Notice how were passing "this" to the GWorker object? Thats the LBSMidlet7 object. Take a quick look at the QWorker class, it extends the Thread class. Thats why we call worker.start() in the LBSMidlet7 constructor. We want to start our worker thread.
When you start a thread, what you are doing is creating an object and then running that objects run() method. Take a look at the run method. It has an endless loop and in the loop the first thing it does is call queue.wait(). Look at the definition of the queue. The queue is an abstract data type (ADT), it just like a queue at a bank, enter the queue at the back of the line and leave the queue when you get to the front of the line. Look at the definition of the queue, its our vector (dynamic array). When you call wait() on an object within a class that extends the Thread class, it puts that object to sleep. Think about that a little. When we hit that line, our QWorker object is now waiting... Whats it waiting for? Well get to that in a minute. Before we do that, take a look at the synchronized keyword. Notice that its wrapping the queue. What that does is it puts a lock on the queue and tells all other processes not to touch the queue until that little block of code is done with it.
Ok, so now weve started a worker thread and put it to sleep. Lets now go back to the LBSMidlet7 class and take a look at the startApp() method. In the lifecycle of a midlet, the constructor is called once and then the startApp() method is called next. In fact it can be called several times, like for instance when you close a flip phone and then open it again. What happens is that the app is suspended and when you flip the phone open again, startApp() is called again. In startApp(), we get our display and then we create a LocationProvider if one hasnt already been created and we create another thread... Why are we creating all these threads? Good question. When a midlet (app) is suspended, the backgroud threads that are created keep running. That allows us to get our GPS data and send it to our webserver while we do other important stuff, like make phone calls.
The LocationProvider is what gets our GPS data. First we create a criteria, were using the default, but you can set stuff like accuracy, response time etc. Next we create our Location Listener. Its pretty much just what it sounds like. Here you can set the interval for how often you want to get GPS data. Its currently set to 60 which is in seconds. When data comes in, the locationUpdated() method is called. This is another one of the required methods in the LocationListener interface. Here we create yet another thread and call getLocation(). The getLocation() method gets the GPS coordinates, creates a queryString which we will send to the web server a little later and then calls worker.addToQueue in the QWorker class.
Lets go back over to the QWorker class and see what happens in that method. It add the queryString to the queue and then calls queue.notify(). Guess what queue.notify() does? It wakes up our sleeping QWorker thread and tells it to get to work! Notice that our calls to the queue are once again wrapped in a synchronized block. Please practice safe threading... When notify() is called on a thread, what it does is go back to the run() method and execute the next line of code right after where we told the queue to wait(). So now we are just about ready to send the GPS data to the web server. We have a couple of interesting lines of code there. First we call peekInQueue() which gets the queryString out of the queue but leaves it there for now. Then it sends the queryString to the getUrl method which attempts to send the queryString to our web server. If its successful, we can remove the queryString from the queue. If not, we leave the queryString in the queue and try to send it to the webserver again later.
Why in the world do we have this complicated queue here? Im glad you asked. There may be times when you are receiving GPS data but are not actually in an area that has a cell phone connection. If we dont have a cell phone connection, we cant send our GPS data to our web server. So we stick our queryString in our queue and wait until we get back into an area with cell phone connectability. Can you hear me now?
Well, weve spent a pretty fair bit of time explaining the phone code. Its a little complicated but its important to know whats going on if you want to take the code and make modifications to it to suit your needs. Heres a good article on the Sun website to let you know about more capabilities of the Location Based Services API. Right about now, our queryString should be arriving at our website, lets catch up to it and see what happens.
Enhancements:
- Added comments to code
Download (MB)
Added: 2007-07-25 License: GPL (GNU General Public License) Price:
578 downloads
GPS::SpaceTrack 0.11
GPS::SpaceTrack is a package for calculating the position of GPS satellites. more>>
GPS::SpaceTrack is a package for calculating the position of GPS satellites.
SYNOPSIS
use GPS::SpaceTrack;
my $obj=GPS::SpaceTrack->new(filename=>"gps.tle");
print join("t", qw{Count PRN ELEV Azim SNR USED}), "n";
foreach ($obj->getsatellitelist({lat=>38.870997, lon=>-77.05596})) {
print join("t", $_->prn, $_->elev, $_->azim, $_->snr, $_->used), "n";
}
This package can calculates the location of the GPS satellite constellation given the position of the receiver and a time which can be in the future.
CONVENTIONS
Function naming convention is "format of the return" underscore "format of the parameters."
CONSTRUCTOR
new
The new() constructor passes paramaters to the filename() method.
my $obj = GPS::SpaceTrack->new(filename=>$filename);
METHODS
getsatellitelist
The getsatellitelist() method returns a list of Net::GPSD::Satellite objects. The getsatellitelist() method is a wrapper around getsatellitelist_rad() for data formatted in degrees instead of radians.
my $list=$obj->getsatellitelist({lat=>$lat, lon=>$lon, alt=>$hae, time=>$time}); #degrees, degrees, meters, seconds from epoch
my @list=$obj->getsatellitelist({lat=>$lat, lon=>$lon, alt=>$hae, time=>$time}); #degrees, degrees, meters, seconds from epoch
getsatellitelist_rad
The getsatellitelist_rad() method returns a list of Net::GPSD::Satellite objects. This method is basically a wrapper around Astro::Coord::ECI::TLE.
my $list=$obj->getsatellitelist_rad({lat=>$lat, lon=>$lon, alt=>$hae, time=>$time}); #radians, radians, meters, seconds from epoch
my @list=$obj->getsatellitelist_rad({lat=>$lat, lon=>$lon, alt=>$hae, time=>$time}); #radians, radians, meters, seconds from epoch
filename
Method to get or set the filename of the TLE data.
my $filename=$obj->filename;
my $filename=$obj->filename(filename=>$filename);
<<lessSYNOPSIS
use GPS::SpaceTrack;
my $obj=GPS::SpaceTrack->new(filename=>"gps.tle");
print join("t", qw{Count PRN ELEV Azim SNR USED}), "n";
foreach ($obj->getsatellitelist({lat=>38.870997, lon=>-77.05596})) {
print join("t", $_->prn, $_->elev, $_->azim, $_->snr, $_->used), "n";
}
This package can calculates the location of the GPS satellite constellation given the position of the receiver and a time which can be in the future.
CONVENTIONS
Function naming convention is "format of the return" underscore "format of the parameters."
CONSTRUCTOR
new
The new() constructor passes paramaters to the filename() method.
my $obj = GPS::SpaceTrack->new(filename=>$filename);
METHODS
getsatellitelist
The getsatellitelist() method returns a list of Net::GPSD::Satellite objects. The getsatellitelist() method is a wrapper around getsatellitelist_rad() for data formatted in degrees instead of radians.
my $list=$obj->getsatellitelist({lat=>$lat, lon=>$lon, alt=>$hae, time=>$time}); #degrees, degrees, meters, seconds from epoch
my @list=$obj->getsatellitelist({lat=>$lat, lon=>$lon, alt=>$hae, time=>$time}); #degrees, degrees, meters, seconds from epoch
getsatellitelist_rad
The getsatellitelist_rad() method returns a list of Net::GPSD::Satellite objects. This method is basically a wrapper around Astro::Coord::ECI::TLE.
my $list=$obj->getsatellitelist_rad({lat=>$lat, lon=>$lon, alt=>$hae, time=>$time}); #radians, radians, meters, seconds from epoch
my @list=$obj->getsatellitelist_rad({lat=>$lat, lon=>$lon, alt=>$hae, time=>$time}); #radians, radians, meters, seconds from epoch
filename
Method to get or set the filename of the TLE data.
my $filename=$obj->filename;
my $filename=$obj->filename(filename=>$filename);
Download (0.051MB)
Added: 2007-05-18 License: Perl Artistic License Price:
891 downloads
kGpsImageTag 0.1
kGpsImageTag reads gps data from a text file and correlates it with the photos in the same folder. more>>
kGpsImageTag reads gps data from a text file and correlates it with the photos in the same folder.
Use Correlate data to correlate gps data with images. If an image does not have a gps entry, it is extrapolated.
Use Hide/Show to hide/show all lines that do not correspond to an image.
<<lessUse Correlate data to correlate gps data with images. If an image does not have a gps entry, it is extrapolated.
Use Hide/Show to hide/show all lines that do not correspond to an image.
Download (0.40MB)
Added: 2006-09-18 License: GPL (GNU General Public License) Price:
1131 downloads
GPS::Lowrance::Trail 0.43
GPS::Lowrance::Trail is a Perl module to convert between GDM16 Trails and other formats. more>>
GPS::Lowrance::Trail is a Perl module to convert between GDM16 Trails and other formats.
Installation:
Installation is pretty standard:
perl Makefile.PL
make
make test
make install
There is no test suite to speak of. One will be added in a later version.
SYNOPSIS
use GPS::Lowrance::Trail;
my $trail = new GPS::Lowrance::Trail;
my $fh1 = new FileHandle read_gdm16( $fh1 ); # read GDM16 Trail Exports
$trail->write_latlon( $fh2 ); # write as Longitude/Latitude file
This module allows one to convert between Lowrance GPS trail files (handled by their GDM16 application), Latitude/Longitude (or "Lat/Lon") files, UTM, and GPX files which may be used by mapping applications.
<<lessInstallation:
Installation is pretty standard:
perl Makefile.PL
make
make test
make install
There is no test suite to speak of. One will be added in a later version.
SYNOPSIS
use GPS::Lowrance::Trail;
my $trail = new GPS::Lowrance::Trail;
my $fh1 = new FileHandle read_gdm16( $fh1 ); # read GDM16 Trail Exports
$trail->write_latlon( $fh2 ); # write as Longitude/Latitude file
This module allows one to convert between Lowrance GPS trail files (handled by their GDM16 application), Latitude/Longitude (or "Lat/Lon") files, UTM, and GPX files which may be used by mapping applications.
Download (0.008MB)
Added: 2006-08-10 License: GPL (GNU General Public License) Price:
1174 downloads
GoooooPS 0.1
GoooooPS is a Java MIDlet that displays a position obtained from a GPS receiver on a Google Map Tile. more>>
GoooooPS is a Java MIDlet that displays a position obtained from a GPS receiver on a Google Map Tile.
<<less Download (0.013MB)
Added: 2006-07-20 License: GPL (GNU General Public License) Price:
1191 downloads
WIGS 2.0
WIGS is both an API to talk to a GPS receiver over the serial port via the NMEA protocol. more>>
WIGS is both an API to talk to a GPS receiver over the serial port via the NMEA protocol supported by most GPS receivers, as well as an application that use this API.
The first phase of the WIGS project is now completed as weve published the API.
The second phase is to make an application to present the data received from the GPS in a simple and intuitive way.
The third phase, and also the most important phase, is to add a special mapping feature which allows the user to load any scanned map and, as long as that map is calibrated by providing a set of known coordinates on that map (usually the corners of the map), present the users current position on that map.
Enhancements:
- The API was completely rewritten for better integration into the GUI.
- Third party communications drivers written by developers other than the development team are supported.
- Some minor bugs were fixed.
<<lessThe first phase of the WIGS project is now completed as weve published the API.
The second phase is to make an application to present the data received from the GPS in a simple and intuitive way.
The third phase, and also the most important phase, is to add a special mapping feature which allows the user to load any scanned map and, as long as that map is calibrated by providing a set of known coordinates on that map (usually the corners of the map), present the users current position on that map.
Enhancements:
- The API was completely rewritten for better integration into the GUI.
- Third party communications drivers written by developers other than the development team are supported.
- Some minor bugs were fixed.
Download (MB)
Added: 2006-11-21 License: GPL (GNU General Public License) Price:
1072 downloads
Other version of WIGS
License:GPL (GNU General Public License)
Secleted [ 0 ] software to compare
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above gps search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed