%  !TeX  root  =  user_guide.tex  
\mainmatter
\pagestyle{scrheadings}
\addchap{Foreword}\label{label_forward}
\pagenumbering{arabic}
\setcounter{page}{1}

% when the revision of a section has been finalized, 
% comment out the following line:
% \updatedisclaimer

Welcome to the wonderful world of Geographical Information Systems (GIS)!
Quantum GIS (QGIS) is an Open Source Geographic Information System. The project
was born in May of 2002 and was established as a project on SourceForge in June
of the same year. We've worked hard to make GIS software (which is traditionally
expensive proprietary software) a viable prospect for anyone with basic access
to a Personal Computer. QGIS currently runs on most Unix platforms, Windows, and
OS X. QGIS is developed using the Qt toolkit (\url{http://qt.nokia.com})
and C++. This means that QGIS feels snappy to use and has a pleasing, 
easy-to-use graphical user interface (GUI). 

QGIS aims to be an easy-to-use GIS, providing common functions and features.
The initial goal was to provide a GIS data viewer. QGIS has reached the point
in its evolution where it is being used by many for their daily GIS data viewing
needs. QGIS supports a number of raster and vector data formats, with new
format support easily added using the plugin architecture.

QGIS is released under the GNU General Public License (GPL). Developing QGIS 
under this license means that you can inspect and modify the source code,
and guarantees that you, our happy user, will always have access to a GIS
program that is free of cost and can be freely modified. You should have
received a full copy of the license with your copy of QGIS, and you also can
find it in Appendix \ref{gpl_appendix}.  

\begin{Tip}\caption{\textsc{Up-to-date Documentation}}\index{documentation}
The latest version of this document can always be found at 
\url{http://download.osgeo.org/qgis/doc/manual/}, or in the documentation
area of the QGIS website at \url{http://www.qgis.org/en/documentation}
\end{Tip}

\addsec{Features}\label{label_majfeat}

\qg offers many common GIS functionalities provided by core features and
plugins. As a short summary they are presented in six categories to gain a
first insight.

\minisec{View data}

You can view and overlay vector and raster data in different formats and
projections without conversion to an internal or common format. Supported
formats include:

\begin{itemize}[label=--]
\item spatially-enabled tables using PostGIS and SpatiaLite, vector 
formats supported by the installed OGR library, including ESRI shapefiles, MapInfo, 
SDTS, GML and many more.
\item Raster and imagery formats supported by the installed GDAL (Geospatial
Data Abstraction Library) library, such as GeoTiff, Erdas Img., ArcInfo Ascii 
Grid, JPEG, PNG and many more.
\item SpatiaLite databases (see Section \ref{label_spatialite}) 
\item GRASS raster and vector data from GRASS databases (location/mapset),
see Section \ref{sec:grass}, 
\item Online spatial data served as OGC-compliant Web Map Service (WMS) or
Web Feature Service (WFS), see Section \ref{working_with_ogc},
\item OpenStreetMap data (see Section \ref{plugins_osm}).
\end{itemize}

\minisec{Explore data and compose maps} 

You can compose maps and interactively explore spatial data with a friendly
GUI. The many helpful tools available in the GUI include:

\begin{itemize}[label=--]
\item on the fly projection
\item map composer
\item overview panel
\item spatial bookmarks
\item identify/select features
\item edit/view/search attributes
\item feature labeling
\item change vector and raster symbology
\item add a graticule layer - now via fTools plugin
\item decorate your map with a north arrow scale bar and copyright label
\item save and restore projects
\end{itemize}

\minisec{Create, edit, manage and export data}

You can create, edit, manage and export vector maps in several formats. Raster data
have to be imported into GRASS to be able to edit and export them into other
formats. QGIS offers the following: 

\begin{itemize}[label=--]
\item digitizing tools for OGR supported formats and GRASS vector layer
\item create and edit shapefiles and GRASS vector layers
\item geocode images with the Georeferencer plugin
\item GPS tools to import and export GPX format, and convert other GPS
formats to GPX or down/upload directly to a GPS unit (on Linux, usb: has been added
to list of GPS devices)
\item visualize and edit OpenStreetMap data
\item create PostGIS layers from shapefiles with the SPIT plugin 
\item improved handling of PostGIS tables
\item manage vector attribute tables with the new attribute table (see Section 
\ref{sec:attribute table}) or Table Manager plugin
\item save screenshots as georeferenced images
\end{itemize}

\minisec{Analyse data} 

You can perform spatial data analysis on PostgreSQL/PostGIS and other OGR
supported formats using the fTools Python plugin. QGIS currently offers
vector analysis, sampling, geoprocessing, geometry and database management
tools. You can also use the integrated GRASS tools, which 
include the complete GRASS functionality of more than 400 modules (See
Section \ref{sec:grass}).

\minisec{Publish maps on the Internet}

QGIS can be used to export data to a mapfile and to publish them on the
Internet using a webserver with UMN MapServer installed. QGIS can also
be used as a WMS or WFS client, and as WMS server. 

\minisec{Extend QGIS functionality through plugins} 

QGIS can be adapted to your special needs with the extensible
plugin architecture. QGIS provides libraries that can be used to create
plugins.  You can even create new applications with C++ or Python!

\minisec{Core Plugins}

\begin{enumerate}
\item Add Delimited Text Layer (Loads and displays delimited text files
containing x,y coordinates)
\item Coordinate Capture (Capture mouse coordinates in different CRS)
\item Decorations (Copyright Label, North Arrow and Scale bar)
\item Diagram Overlay (Placing diagrams on vector layer)
\item Displacement Plugin (Handle point displacement in case points have the same position)
\item Dxf2Shp Converter (Convert DXF to Shape)
\item GPS Tools (Loading and importing GPS data)
\item GRASS (GRASS GIS integration)
\item GDALTools (Integrate GDAL Tools into QGIS)
\item Georeferencer GDAL (Adding projection information to raster using GDAL)
\item Interpolation plugin (interpolate based on vertices of a vector layer)
\item Load PostGIS raster to QGIS 
\item Mapserver Export (Export QGIS project file to a MapServer map file)
\item Offline Editing (Allow offline editing and synchronizing with database)
\item OpenStreetMap plugin (Viewer and editor for openstreetmap data)
\item Oracle Spatial GeoRaster support
\item Plugin Installer (Download and install QGIS python plugins)
\item Raster terrain analysis (Raster based terrain analysis)
\item Road graph plugin (Shortest Path network analysis)
\item SPIT (Import Shapefile to PostgreSQL/PostGIS)
\item SQL Anywhere Plugin (Store vector layers within a SQL Anywhere database)
\item Spatial Query Plugin (make spatial queries on vector layers)
\item WFS Plugin (Add WFS layers to QGIS canvas)
\item eVIS (Event Visualization Tool)
\item fTools (Tools for vector data analysis and management)
\item Python Console (Access QGIS environment)
\end{enumerate}

\minisec{External Python Plugins}

QGIS offers a growing number of external python plugins that are provided by
the community. These plugins reside in the official PyQGIS repository, and
can be easily installed using the Python Plugin Installer (See Section
\ref{sec:plugins}).

\subsubsection{What's new in version \CURRENT} 

Please note that this is a release in our 'cutting edge' release series. As such 
it contains new features and extends the programmatic interface over QGIS 1.0.x 
and QGIS 1.6.0. We recommend that you use this version over previous releases.

This release includes over 277 bug fixes and many new features and enhancements.

\minisec{Symbology labels and diagrams}

\begin{itemize}[label=--]
\item New symbology now used by default!
\item Diagram system that uses the same smart placement system as labeling-ng
\item Export and import of styles (symbology-ng).
\item Labels for rules in rule-based renderers.
\item Font marker can have an X,Y offset.
\item Line symbology:
\begin{itemize}[label=--]
\item Option to put marker on the central point of a line.
\item Option to put marker only on first/last vertex of a line.
\item Allow the marker line symbol layer to draw markers on each vertex.
\end{itemize}
\item Polygon symbology:
\begin{itemize}[label=--]
\item Rotation for svg fills.
\item Added 'centroid fill' symbol layer which draws a marker on polygon's centroid.
\item Allow the line symbol layers to be used for outline of polygon (fill) symbols.
\end{itemize}
\item Labels
\begin{itemize}[label=--]
\item Ability to set label distance in map units.
\item Move/rotate/change label edit tools to interactively change data defined label properties.
\end{itemize}
\item New Tools
\begin{itemize}[label=--]
\item Added GUI for gdaldem.
\item Added field calculator with functions like \$x, \$y and \$perimeter.
\item Added 'Lines to polygons' tool to vector menu.
\item Added voronoi polygon tool to Vector menu.
\end{itemize}
\end{itemize}

\minisec{User interface updates}

\begin{itemize}[label=--]
\item Allow managing missing layers in a list.
\item Zoom to group of layers.
\item 'Tip of the day' on startup. You can en/disable tips in the options panel.
\item Better organisation of menus, separate database menu added.
\item Add ability to show number of features in legend classes. Accessible via right-click legend menu.
\item General clean-ups and usability improvements.
\end{itemize}

\minisec{CRS Handling}

\begin{itemize}[label=--]
\item Show active crs in status bar.
\item Assign layer CRS to project (in the legend context menu).
\item Select default CRS for new projects.
\item Allow setting CRS for multiple layers at once.
\item Default to last selection when prompting for CRS.
\end{itemize}

\minisec{Rasters}

\begin{itemize}[label=--]
\item Added AND and OR operator for raster calculator
\item '''On-the-fly reprojection of rasters added!'''
\item Proper implementation of raster providers.
\item Added raster toolbar with histogram stretch functions.
\end{itemize}

\minisec{Providers and Data Handling}

\begin{itemize}[label=--]
\item New SQLAnywhere vector provider.
\item Table join support
\item Feature form updates
\item Make NULL value string representation configurable.
\item Fix feature updates in feature form from attribute table.
\item Add support for NULL values in value maps (comboboxes).
\item Use layer names instead of ids in drop down list when loading value maps from layers.
\item Support feature form expression fields: line edits on the form which name prefix 'expr\_' are evaluated. Their value is interpreted as field calculator string and replaced with the calculated value.
\item Support searching for NULL in attribute table.
\item Attribute editing improvements
\item Improved interactive attribute editing in table (adding/deleting features, attribute update).
\item Allow adding of geometryless features.
\item Fixed attribute undo/redo.
\item Improved attribute handling.
\item Optionally re-use entered attribute values for next digitized feature.
\item Allow merging/assigning attribute values to a set of features.
\item Allow OGR 'save as' without attributes (for eg. DGN/DXF).
\end{itemize}

\minisec{Api and Developer Centric}

\begin{itemize}[label=--]
\item Refactored attribute dialog calls to QgsFeatureAttribute.
\item Added QgsVectorLayer::featureAdded signal.
\item Layer menu function added.
\item Added option to load c++ plugins from user specified directories. Requires application restart to activate.
\item Completely new geometry checking tool for fTools. Significantly faster, more relevant error messages, and now supports zooming to errors. See the new QgsGeometry.validateGeometry function
\end{itemize}

\minisec{QGIS Server}

\begin{itemize}[label=--]
\item Ability to specify wms service capabilities in the properties section of the project file (instead of wms\_metadata.xml file).
\item Support for wms printing with GetPrint-Request.
\end{itemize}

\minisec{Plugins}

\begin{itemize}[label=--]
\item Support for icons of plugins in the plugin manager dialog.
\item Removed quickprint plugin - use easyprint plugin rather from plugin repo.
\item Removed ogr convertor plugin - use 'save as' context menu rather.
\end{itemize}

\minisec{Printing}

\begin{itemize}[label=--]
\item Undo/Redo support for the print composer
\end{itemize}

\newpage

