gps3d

news
f.a.q.
about
contact
download
screenshots

    How accurate is gps3d ?

        a) !!! DO NOT USE THIS SET OF TOOLS FOR ANY REAL-WORLD NAVIGATION !!!
           These tools are toys, and the various math formulas used throughout
           the software are based on a spherical earth model (which is *way*
           wrong), and are more than likely to contain errors.
            
        b) This set of utilities was developped and tested with a Magellan GPS 315,
           and has never been tested with any other GPS devices out there.
	
    I don't have a gps unit, can I stil use gps3d ?

        yes. gps3d does not need to be connected to a gps to
        let you navigate earth in 3D. If you have a gps connected
        to your computer, gps3d just displays additional info

    I can't get gps3d to talk to my gps unit

        At the moment, gps3d only supports NMEA capable devices.
        Please make sure that your gps is NMEA-capable.

    What are the other utilities that come with gps3d ?

        viz
            viz is the main gps3d program. It is an OpenGL application that
            will connect to a gpsd daemon and display a 3D, texture-mapped
            earth with all kinds of GPS related stuff it reads off the daemon:

                - current fix (position on earth's surface)
                - current track (the trip recorded by the GPS unit)
                - waypoints (special locations that you have marked with your GPS)
                - satellite trajectories (the GPS satellites's travel in time)

            viz can also download road maps from mapblast and display them on
            the earth model.

        gpsd
            gpsd is a daemon (program that runs in the background) that
            will monitor a serial port for messages sent by a GPS device
            and broadcast it on a TCP port (actually, it broadcasts anything
            that comes in on the serial port, so you could use gpsd to do
            an internet broadcast the output of any device: an atomic clock,
            an acquisition device, etc...).

            This allows you to have multiple processes listening to the same
            GPS unit at the same time. Also, a machine with a dedicated connection
            to the internet and a GPS unit attached to it can use this to permanently
            broadcast its position to anyone who wants to know (this also means that
            everyone on the net knows where you live within a few meters :) ).

            Finally, gpsd can also relay client requests to the GPS unit (it will write
            NMEA sentences received on a TCP socket to the GPS).  Warning: there is no
            arbitration mechanism for write access to the GPS, so if two clients send
            requests at the same time, you're on your own: the only guarantee of atomicity
            is at the sentence level, that is gpsd will not mix two NMEA sentences.

        gps
            gps is a simple example client for the gpsd daemon.  It connects to a gpsd
            server, reads and parses the NMEA sentences and prints them in human readable
            form. This is not intended to be useful for anything other than debugging or
            tinkering with your gps unit.

    What does it run on and what does it need

        So far, gps3d has been tested on the following systems:

                Linux
                Mac OSX
                Windows 95
                Windows 98
                Windows 2000
                Windows NT 4.0 SP5

        At this point, gps3d only supports serial connections to GPS devices, and does not
        support USB GPD units. This may change in the near future.

    How do I install it ? 

        On Linux, extract the tarball and type make
        On Win32, if you have Visual C++ 6.0, there is a .dsw in the win32 sub-directory.
        Alternatively just grab the latest binaries from https://www.mgix.com/gps3d/?download
        There is no installer. You just run it from where it's at.

    How do I use viz ?

        Just launch ./viz.

        By default it will try to connect to a gpsd server on the localhost.
        If it can't connect, it will still let you play with the texture mapped
        earth, but won't display anything GPS related.

        If you want to, you can specifiy the host and port of the gpsd viz will
        try to connect to as follows:

            ./viz gps.southpole.aq 1234

        When viz is up and running, press H, it will display a quick help screen.

        I've included an example Track file. It's a very small track, by earth
        proportions, so you will have to find it :) . Once it's loaded, you'll
        find it as a tiny speck, next to Los Angeles.(It's a sailing trip, hence
        the zigzags when tacking upwind).

        If you want to capture RAW NMEA gps output to build your own track files,
        you can use something along the lines of:

            ./gps | grep -i '$GP'

    How do I use gpsd ?

        By default, gpsd connects to /dev/ttyS0 (COM1) at 19200 bauds, and broadcasts
        on TCP port 2222.

        These defaults can be changed from the command line as follows:

            ./gpsd -serial /dev/ttyS1 -speed 4800 -port 1234

        To test that gpsd can hear your GPS device, use the example client gps: it will
        dump everything it can read from gpsd.

    How should I configure my gps ?

        1. Connect it to a serial port. Preferably /dev/ttyS0 or COM1 since
           it is the default port gpsd connects to

        2. Configure your GPS to output NMEA messages on the serial connection,
           preferably at 19200 bauds (again, gpsd's default).

        3. If it doesn't work, read item b) of the Disclaimer below.

    Can I use my own map of the earth ?

            1. If you want to use your own map of the earth.
                - Get your map of of earth into your favorite image editor
                - Flip it (turn it upside down)
                - Resize it to NxN, where N is a power of two.
                - Save the result in PNM binary mode in map.pnm

            2. How big can my map be ?
                The bigger you map is, the more detail you will get for the earth
                surface, but the more Texture RAM will be eaten up on your OpenGL
                accelerator. Typically, a 2048x2048 map requires 32Mb onboard RAM,
                and a 1kx1k map will fit in 16Mb.

                However, you should be able to feed viz real large map, because
                it tries to resize the map down until it fits in texture RAM. But
                a larger map will not buy any more quality than you OpenGL board
                RAM can handle.

    How come the satellites trajectories aren't ellipses ?

        Actual GPS satellites orbits are indeed ellipses but in an absolute
        frame of reference, i.e whose axes are not moving wrt to, say, some
        distant stars.  But, GPS3D displays stuff in an earthbound frame of
        reference (i.e. the frame rotates along with the planet). In that frame
        of reference, the satellite's trajectories are not *at all* ellipses.
        They look like a horse's saddle. See http://www.mgix.com/gps3d/orbits.jpg
        to see a plot.

    What about the license ?

        gps3d and its source code are in the public domain.













$contact white
news
f.a.q.
about
contact
download
screenshots