% Template GRASS newsletter - Article
% Language: Latex
% vim:tw=76

% Head

\title{Quantum GIS}
\subtitle{What's New in 0.8}
\author{by Gary E. Sherman}

\maketitle

\section{Introduction}
\label{sec:qgis_intro}
Version 0.8 of Quantum GIS (QGIS) is nearing release. Many of you may be
wondering why its been so long in coming. At 0.8, we converted the QGIS code
base to use Qt 4.x. This was a major overhaul and took longer than
anticipated. With that job behind us, we look forward to more frequent
incremental releases in the future.

In addition to the port to Qt 4.x, version 0.8 adds a number of new features
and enhancements.

\section{New Features and Enhancements} 
New features in QGIS 0.8 include:
\begin{itemize}
\item WMS support
\item Improved vector and attribute editing
\item Improved measure tools with area measuring
\item Attribute searching
\item New legend structure
\item Refactoring of API to allow the use of QGIS libraries in mapping applications
\item Improved MapServer export tool
\item Vector layer transparency and antialiasing
\item GRASS support in all platforms
\item Enhanced GRASS support and toolbox commands
\item Enhanced vector editing, including copy, cut, paste, snapping and vertex editing
\item Shapefile/OGR layer editing
\end{itemize}
Based on an informal poll on \url{http://qgis.org}, it appears that people
are most interested in the GRASS tools, WMS, MapServer export, and enhanced
editing.
\subsection{GRASS Tools}
More tools have been added to the QGIS GRASS toolbox and the
interoperability has been enhanced. For those unfamiliar with the QGIS/GRASS
integration, the GRASS plugin allows you to:
\begin{itemize}
\item Create new GRASS vector layers
\item Easily import GDAL/OGR supported layers into GRASS
\item Perform many processing operations, including union, intersection,
subtraction, buffering, feature extraction, network analysis, create slope
and aspect maps, raster to vector conversion, and layer export to other
formats.
\item GRASS shell gives you access to all GRASS functions from within QGIS
\item Edit vector layers and attributes
\item Layer browser
\end{itemize}
Figure \ref{fig:grass_browser} shows the new GRASS browser that allows you
to view layers and detailed information about each. From the browser, you
can add a layer to the map and also copy, rename, or delete a layer.


\begin{figure}[htbp]
   \centering
   
   \includegraphics[scale=0.35]{images/qgis_grass_browser}
   %caption of the figure
   \caption{GRASS Browser}
   %label of the figure, which has to correspond to \ref{}:
   \label{fig:grass_browser}
\end{figure}
The GRASS shell gives you full access to all command line features of GRASS.
This allows you to run GRASS commands that aren't implemented in the
toolbox.

\subsection{WMS}
WMS support has been added for 0.8. This allows you to add layers from web
mapping servers and view them along with your other vector and raster data
in QGIS. A default set of servers is provided to help those new to WMS.
Figure \ref{fig:wms} shows the Server Connections dialog with the QGIS WMS
layers displayed and ready to be added to the map canvas.
\begin{figure}[htbp]
   \centering
   \includegraphics[scale=0.40]{images/qgis_wms}
   %caption of the figure
   \caption{WMS Server Dialog Showing Layers from the QGIS Server}
   %label of the figure, which has to correspond to \ref{}:
   \label{fig:wms}
\end{figure}
The WMS implementation also supports identifying vector features and a
number of image formats.
\subsection{MapServer Export}
The MapServer export tool has been completely revamped at 0.8 and provides
full support for class rendering, rasters, projections, and pretty much all
the things that were missing in the original version.

The export tool now operates on a saved QGIS project rather than the
currently loaded layer set. In addition, it is a standalone binary, allowing
you to run it outside QGIS to export a set of project files. 

Under the hood, the export tool uses a Python script (ms\_export.py) to do the work with a
GUI interface to collect the required inputs. You can use the Python script
without the GUI, allowing you to script the export of a large number of QGIS
project files.

Figure \ref{fig:mapserver_export} shows the GUI front-end for the MapServer
export tool. All inputs are optional except for the name of the map file to
create and the QGIS project file to export.
\begin{figure}[htbp]
   \centering
   \includegraphics[scale=0.40]{images/qgis_mapserver}
   %caption of the figure
   \caption{GUI for MapServer Export Tool}
   %label of the figure, which has to correspond to \ref{}:
   \label{fig:mapserver_export}
\end{figure}

To use the script without the GUI, you need to provide all the inputs
expected by ms\_export.py. This can be done with a driver script and an
example is included in your QGIS install at
./share/qgis/python/test\_export.py.

The MapServer export tool doesn't currently support fonts, label properties, point
symbols, and custom line or polygon symbols. Of course the map file can be
easily customized in your favorite text editor after export. 
\subsection{Enhanced Editing}
While the QGIS/GRASS plugin already provides advanced editing capability,
editing  has been significantly improved for shapefiles and PostGIS layers
at 0.8. You can now copy/cut/paste features between these layers.
Vertex editing, including snapping has been added as well.

\subsection{Other Highlights}
Another new feature is the ability to search the attribute table. Figure
\ref{fig:attribute_search} shows the new Attribute Table dialog with the
search controls at the bottom of the dialog. You can search by any field in
the attribute table. The Advanced search provides a complete query builder
to facilitate complex searches.

\begin{figure}[htbp]
   \centering
   \includegraphics[scale=0.35]{images/qgis_attribute_search}
   %caption of the figure
   \caption{Attribute Searching in QGIS 0.8}
   %label of the figure, which has to correspond to \ref{}:
   \label{fig:attribute_search}
\end{figure}

The measuring tools have been enhanced and now support the measurement of
area in addition to distance.

Native GRASS support is provided for all QGIS platforms, including
Windows. This means you don't need Cygwin to run GRASS.

WFS support is included in the 0.8 code base but it is not built by default
since it is considered to be potentially unstable. Those of you compiling
QGIS from source will have the option to include WFS support.


\section{What's Ahead}
\label{sec:qgis_whats_ahead}
There are some exciting developments underway within the QGIS project.
Foremost among these is the implementation of Python bindings for the QGIS
libraries. This will allow developers to easily develop custom mapping applications in
Python and PyQt4. Additional refactoring of the QGIS libraries has already
been done and will be merged into the code base after the 0.8 release. 

At 0.9 a mature API will be available for developing your own mapping
applications in either C++ or Python. We also anticipate the ability to
automate QGIS tasks as well as develop plugins using Python.

The remainder of the work leading up to QGIS 1.0 will concentrate on
stabilizing and maturing existing functionality, as well as adding new
features such as raster image catalogs, improved labeling, and additional
data providers.


\address{Gary E. Sherman\\
  Quantum GIS\\
  \url{http://qgis.org}\\
  \email{sherman AT mrcc com}}




%%% Local Variables: 
%%% mode: latex
%%% TeX-master: main_document.tex
%%% End: 

