Mapping - collection & digitizing

This is a draft of specification for software project at MFF UK.

The group will be formed by following students:

Introduction

The idea about this project comes from the effort of creation of high-quality street map with good support for routing and geocoding. This type of data consists of coordinates of the map features and additional metadata containing e.g. type of the road or driving restrictions. Usually, geographic part of data is captured in field by GPS or digitized from satellite imagery to vectors in Geographic Information System (GIS). The problem is to capture metadata with enough details, some road properties are essential for good decisions in routing software.

Aim of this project is to help with collection of geographical data in field (i.e. driving a car with GPS) by creating a flexible system that stores collected data from different sources (GPS, microphone, camera). Then, the software will allow viewing the collected data easily and help the user with digitizing process providing effective editing tools and visualization options. As a result, users should get system capable to work with big amounts of geographical data with no need to use other (commercial) GIS software.

The project will make use of Quantum GIS (QGIS). It is a piece of software licensed under GNU GPL for visualization of geographical data. It features also some basic editing capabilities. Its libraries allow 3rd party software to load, read and display geographical data. QGIS can be extended by plugins in either C++ and Python. This makes it a good choice as a platform - for both handling geographical data and displaying it.

Data collection

Data collection component will be designed for usage in a vehicle equipped with a computer and GPS. As input data from GPS we will support NMEA-0183 format (which is widely used in industry). Optionally, more devices can be used to allow more detailed digitizing. There is planned support for following additional data sources: The architecture should allow adding other types of devices as new sources of data. While driving, data will be recorded from the different sources and stored on hard drive for further digitizing.

Graphical interface should display current position on map and update it regularly. By default GUI should pan the map automatically so that current position is always visible. User will be able to zoom or pan the map manually. If user has access to some data of the region being mapped (e.g. aerial imagery) he will be able to use them as background of the map. This helps to determine which areas or roads are not yet covered. The collection shouldn't require any input from user during data collection to allow also mapping without operator (only driver). Operator in the vehicle should be able to add more information to the recorded data - e.g. mark position of some important waypoint or place that will need special attention later during postprocessing.

Data replay

Once the data will be stored, another piece of software will be needed to replay it. It will show timeline and allow navigating in the record, playing it with normal or higher speed. While playing the record, position from GPS should be shown on map (again allowing to load some background maps) with possibility to view data from other sources in the record, e.g. video or audio.

Map creation and editing

Editor is an important part of the project because affects greatly overall time spent with digitizing and assigning attributes. Quantum GIS features a simple editor with all basic functions, e.g. create features, edit vertices. It is good enough for editing small datasets without topology, but not suited for greater datasets with topology. Here's a list of necessary additions: These tools will be supported:

Besides the improvements mentioned above, editing will be enhanced by some custom tools that will simplify the process of digitizing from collected data. Users are likely to need following operations:

We will investigate usual workflows during digitizing and design the tools appropriately to allow maximum efficiency in frequently repeated tasks.

Editing tools must be ready for multi-user environment (i.e. more users editing the map at the same time). If desired by the user, editing tools will keep history about the edits in database - saving previous geometry and attributes of features together with time of the edit and user in charge.

OpenStreetMap integration

The project should help people interested in mapping roads (either volunteers or commercial map vendors) by providing an open and extensible platform. In recent years OpenStreetMap (OSM) has gained popularity because in many countries there were no freely available digital roadmaps. This project is intended to support OSM data format and provide good editing capabilities for it. There are already some editors available for OSM, but they are only single-purpose programs with limited functionality. Our intent is to connect OSM with real GIS software:

Quantum GIS changes

While some of the work will be done as plugins for QGIS, there are several areas in QGIS that need improvements:

License

All source code produced during the project will be licensed under GNU GPL v2.