[[TOC]] = Share GPS Data = == Problem Description == * Field staff for NGOs (both Humanitarian & Development) visit Programme sites with handheld GPS (e.g. Garmin eTrex). * They collect data as they go (Tracks & Waypoints). * They would like a way of easily sharing this information between each other: - uploading data to a central repository - managing this master repository to have a reference dataset: no duplicates, names checked for consistency - this management should work offline - download the reference dataset to each GPS * A secondary benefit will be in terms of wider communications (e.g. reporting to Donors) * A potential future enhancement would be to be able to download GPX routes from/to specific locations. This requirement is defined by [http://oxfam.org Oxfam] in Haiti, but is applicable to many other organisations & locations as evidenced by this combined Problem Definition for RHoK: * http://wiki.rhok.org/Sahana_Eden_Offline_Mapping It could also be the public version of the WFP !GeoPortal (which will be separate from their Intranet): * http://geoportal.logcluster.org == High-Level Architecture Proposal == It would be ideal if as much of the reference dataset as possible could be incorporated into the Base Map - !OpenStreetMap is ideal for this. Propose to: * Set up a Virtual Machine containing all necessary software (to make it easy to install on any available PC - this setup may need replicating in several offices, although no need to sync between offices except via main !OpenStreetMap database at this time) * Local OSM Server * Build a GUI within Sahana to allow the uploading/editing of GPX data === Other Options Considered === * Garmin !MapSource - can't load more than 1 GPX file at a time * Google Earth - allows access to simple, known tools for manipulating the Waypoints to download an authoritative GPX - treat the basemap as more static (do an initial 1-time basemap inc contours & follow this up with a process for updating the contours.osm with Osmosis) - doesn't work offline, although could use a KML super-overlay when offline: * http://svn.openstreetmap.org/applications/utils/wms2kml/ * !GeoServer can produce the !SuperOverlay from cascaded WMS: * http://geoserver.org/display/GEOS/GSIP+47+-+WMS+cascading * http://docs.geoserver.org/stable/en/user/googleearth/index.html * [http://wiki.openstreetmap.org/wiki/Mod_mapnik_wms mod_mapnik_wms] to create the WMS * [http://depiction.com Depiction] * Data primarily only shareable with other Depiction users which means hard to gain traction even within an organisation let alone for interagency work. * Installation requires admin rights on the PC, which many field staff won't easily have access to - again lowering the ability to get wider adoption. * Can't create new Depictions or use BaseMaps at all without an active Internet connection. * Revealers seem very gimmicky: I don't find them useful & they're really hard to use in practise (I just wanted a 'full-screen option'). * GeoExplorer already has the ability to dynamically edit layer opacity, which is the 1 thing I'd use them for. * Licensing costs push this beyond local partners to whom we want to handover the tools when moving from Response -> Recovery -> Mitigation/Preparedness (USD 200/machine + add-ons, such as $50 just for icons that come free with Sahana!) * No support for KML (or GeoRSS) * No ability to edit the OpenStreetMap base layer which adds so much value to these maps * Adding Elevation data is clumsy (fairly easy to make this 'seamless' ;) ) == Detailed Architecture Proposal == === Sahana === The current GPX layer interface is probably insufficient. Instead have 2 tables: * !WayPoints (where each point is individually editable for a label & marker - often the raw data will just have numeric labels, so we'll need to add a prefix to distinguish for when re-labelling from written notes) * Tracks (where all points are equal - we don't need to keep track of time or person: if we wish to see a specific track we can use the current GPX file interface for that...so maybe we keep the file uploads but add to the main table via an onaccept?) * http://www.postgresonline.com/journal/index.php?/archives/116-Loading-and-Processing-GPX-XML-files--using-PostgreSQL.html Can we develop a Flash(?) interface to actually manage the transfer to/from the unit of the GPX &/or basemap? Extend our [wiki:BluePrintGISGeoExplorer GeoExplorer] integration as the basis for this (adding other missing !MapViewingClient functionality as we go). ==== Ideas from Depiction ==== [http://depiction.com Depiction] has some useful functionality with some nice UI ideas...there are videos which can be downloaded to review. * Simple UI * add new Features to the map via the mouse inc Single/Multiple options * !QuickAdd toolbar for common resources * Manage Elements tool to locate features within viewport (category, tags or name) & edit their properties (global type or individual) * Colour picker * Label * Icon (Image/Size) * Modelling * elevation data within the database * can we use the same datamodel as for Mapnik's contours? * add an easy downloader like srtm2osm * models could come from GRASS or R, maybe via WPS? * Plumes: Wind speed, direction, volume * Flood * Liquid flow * Antennas (do we need this within Sahana?) * Routing * road structure within the database * imports from !OpenStreetMap * imports from Shapefiles * [http://www.pgrouting.org pgRouting] for back-end calculations? * build on Measure tool (if no better ones available) for front-end UI? * !GeoReferencing * integrate one of the existing tools: [wiki:BluePrintGISRectifier] * Shapefiles support * integrate OGR2OGR (usable even with basic sqlite versions) - e.g. [http://ogre.adc4gis.com Ogre] * !GeoServer via REST? (-> PostGIS where available) * Permatext (useful for printing, especially) * Draggable property (default based on resource type?) * Interactions * Zones of Influence * Barriers are polygons * Default to octagon * Can create custom polygons by dragging/adding/removing polygons (UI for this already in OpenLayers) * Calculated (e.g. Plumes/security cameras) === Local OSM Server === * [wiki:InstallationGuidelinesGISDataLinux#OpenStreetMap] === Edit Base Map === * Potlatch2 * Editing local database or only main one? * Need better integration into Sahana: * passing in the area of the current viewport * seeing Sahana overlays inside Potlatch (can export as either GPX or OSM) === Sync Base Map === Our local install needs to be kept up to date from the global repo: * [http://wiki.openstreetmap.org/wiki/Osmosis Osmosis] * [http://dev.ifs.hsr.ch/osminabox/ osm2gis] If we're making local edits then we need to feed those back to the master repo. * This may be hard. Team up with [http://dev.ifs.hsr.ch/osminabox/ OSM-in-a-Box] to look at this? * [http://wiki.openstreetmap.org/wiki/Things_To_Do#Task:_Satellite_Instances Discussion in OSM Wiki] === Export to Base Map === * [wiki:UserGuidelinesGISDataOpenStreetMapGarmin] * [http://wiki.openstreetmap.org/wiki/Srtm2Osm srtm2osm] (only needs to be run once per location - e.g. country, so can be done outside VM in Windows) * [http://www.mkgmap.org.uk/ mkgmap] ---- [wiki:BluePrintGeographicInformationSystems GIS BluePrints]