Skip to content

mrgriscom/birdseye

Repository files navigation

INSTALLATION

DEPENDENCIES

python >= 2.6, < 3.0
gpsd
zeromq
OpenGL
a GLUT library, such as freeglut3

then:
pip install -r requirements.txt

SETUP

in settings.py:
* create the databases specified in TILE_DB and GPS_LOG_DB


birdseye likes to have control over the gpsd process, so may be best to disable gpsd-autostart when the gps is plugged in. everything will still work if not, but birdseye will not be able to tell if/how things go weird. (see /etc/default/gpsd)

use device in /dev/serial if device name keeps changing (/dev/ttyUSB0 => /dev/ttyUSB1)


ABOUT

the birdseye distribution has four main parts:

1) a full-screen, moving-map navigation app (birdseye.py)
2) a GPS tracking subsystem and logger (gpsmgr.py)
3) a tool to locally cache data from mapservers for offline use (mapcache.py)
4) a web console to explore the tile cache, manage waypoints and regions for download (web/webconsole.py)



CONFIGURATION

sample tile url spec: 'http://{s:0-3}.mapserver.org/tile/{z}/{x}/{y}.{type}'

available directives:

{z} - zoom level
{x} - tile x coordinate, [0, 2^zoom)
{y} - tile y coordinate, [0, 2^zoom)
{-y} - tile y coordinate, but numbered starting in the south and increasing towards the north (i.e., for WMS layers)
{qt} - quadtree index to tile (i.e., for bing layers)
{qt:ABCD} - quadtree index, but with customized symbols to refer to each quadrant
{s:0-3} - server shard (0, 1, 2, 3, in this example)
{s:abc} - server shard (a, b, c, in this example)
{type} - the specified file type for the layer




mapcache.py download profiles. written in yaml (superset of json)

name: region-name
region: lat1,lon1 lat2,lon2 lat3,lon3 lat4,lon4 ...
update: true / false (default)
layers:
  # for each layer:
  <layername>:
    zoom: download depth
    # one or none of:
    refresh-mode: 'always' or 'never' (default)
    refresh-older-than: #days

name - save region under this name. if ommitted, don't save region and just use as one-off ('region' required)
region - polygon defining region boundary. if omitted, use saved region for 'name'
update - if true, update this named region with the new boundary (does NOT affect any tiles downloaded under old region)
<layername> - the name of a layer defined in settings
zoom - depth to download to
refresh-mode: 'always' - download all tiles, even if they already exist in the cache
              'never' - don't download a tile that already exists in the cache
refresh-older-than - re-download a cached tile if downloaded more than N days ago

About

navigation app for netbooks

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published