<?xml version="1.0" encoding='ISO-8859-1'?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
  "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
  <!ENTITY % cartoweb SYSTEM "../cartoweb.ent" >
  %cartoweb;
]>

<!-- $Id: feature.xml,v 1.17 2005-03-30 19:18:54 afellay Exp $ -->

<chapter id="intro.feature">
 <title>Cartographic Functionalities</title>


 <sect1 id="intro.feature.intro">
  <title>Introduction</title>
  <para>
   &cartoweb; is quite a complex piece of software. This chapter
   is only a quick and consequently incomplete overview of the 
   standard functionalities that are somehow visible for an end-user. The
   internal architecture and all the hidden features that make &cartoweb;
   customizable and extensible are presented in the next 
   chapter.
  </para>
 </sect1>

 <sect1 id="intro.feature.overview">
  <title>Overview</title>
  <para>
   The first figure is an overall view of the user interface of the
   demo that is shipped with &cartoweb;. The numbers refer to more or
   less visible underlying features. They are :
  </para>
  <para>
   <orderedlist>
    <listitem>
     <para>
      Main map
     </para>
    </listitem>
    <listitem>
     <para>
      Dynamic keymap
     </para>
    </listitem>
    <listitem>
     <para>
      Navigation tools : zoom-in, zoo-out, panning
     </para>
    </listitem>
    <listitem>
     <para>
      Layers tree
     </para>
    </listitem>   
    <listitem>
     <para>
      Geographic query tool
     </para>
    </listitem> 
    <listitem>
     <para>
      Redlining tools : to draw points, lines, rectangles, polygons
     </para>
    </listitem>
    <listitem>
     <para>
      Measuring tools : distances and surfaces
     </para>
    </listitem>
    <listitem>
     <para>
      Language switch : internationalization support
     </para>
    </listitem>
    <listitem>
     <para>
      Login link : users and roles support
     </para>
    </listitem>
    <listitem>
     <para>
      Print dialog : PDF production
     </para>
    </listitem>
   </orderedlist>
  </para>
    <screenshot>
      <mediaobject>
        <imageobject>
          <imagedata fileref="images/screen_all.jpg" format="JPEG"/>
        </imageobject>
        <textobject>
          <phrase>Overall</phrase>
        </textobject> 
      </mediaobject>
    </screenshot>     
 </sect1>

 <sect1 id="intro.feature.navigation">
  <title>Navigation Interface</title>
   <para>
    There are many possibilities to navigate on the main map, that is to
    change the scale and the position.
  </para>
  <para>
   <itemizedlist>
    <listitem>
     <para>
      The arrows surrounding the main map
     </para>
    </listitem>
    <listitem>
     <para>
      The dynamic (i.e. clickable) keymap
     </para>
    </listitem>
    <listitem>
     <para>
      The navigation tools (zoom and pan)
     </para>
    </listitem>
    <listitem>
     <para>
      The drop-down menu "Scale"
     </para>
    </listitem>
    <listitem>
     <para>
      The various options in the "Search" tab
     </para>
    </listitem>
   </itemizedlist>
  </para>
  <para>
   The menu "Mapsize" is self-explanatory.
  </para>
 </sect1> 
 
 <sect1 id="intro.feature.layer">
  <title>Arbitrarily Complex Hierarchy of Layers</title>
  <para>
    Contrary to Mapserver itself, &cartoweb; supports an arbitrarily 
    complex hierarchy of layers, with infinite depth. 
  </para>
  <para>
    The elements of the layers "tree" have different rendering options :
  </para>
   <itemizedlist>
    <listitem>
     <para>
     normal checkboxes
     </para>
    </listitem>
    <listitem>
     <para>
     blocks
     </para>
    </listitem>    
    <listitem>
     <para>
     radio button (exclusive options)
     </para>
    </listitem>    
    <listitem>
     <para>
     drop-down menu (exclusive options)
     </para>
    </listitem>  
   </itemizedlist>
   <para>
     Examples of these rendering options are presented in the following figure.
   </para>
    <screenshot>
      <mediaobject>
        <imageobject>
          <imagedata fileref="images/screen_tree.png" format="PNG"/>
        </imageobject>
        <textobject>
          <phrase>Layers tree</phrase>
        </textobject> 
      </mediaobject>
    </screenshot>   
    <para>
     The icons for the classes are automatically drawn, and the out-of-scale layers
     are grayed out. 
    </para> 
 </sect1>

 <sect1 id="intro.feature.query">
  <title>Map Queries</title>
  <para>
   Using the query tool, you can geographically search for objects. Found 
    objects are hilighted and their attributes are displayed.
  </para>
  <para>
   &cartoweb; adds many functionalities to the raw queries supported by
   Mapserver. In particular, the queries may be persistent (i.e. you can
   add new objects to already selected objects), and the hilighting can 
   be defined on a layer by layer basis.
  </para>
    <screenshot>
      <mediaobject>
        <imageobject>
          <imagedata fileref="images/screen_query.png" format="PNG"/>
        </imageobject>
        <textobject>
          <phrase>Query example</phrase>
        </textobject> 
      </mediaobject>
    </screenshot>    
 </sect1>

 <sect1 id="intro.feature.annotation">
  <title>Annotation and Redlining</title>
  <para>
   It is possible to freely draw points, lines, rectangles and polygons
   on the map, ant to attach labels to them. These features are persistent:
   they survive panning or zooming.
  </para>
  <para>
   A mask mode, in which everything but the outlined polygon is masked, is
   provided too.
  </para>
    <screenshot>
      <mediaobject>
        <imageobject>
          <imagedata fileref="images/screen_outline.png" format="PNG"/>
        </imageobject>
        <textobject>
          <phrase>Redlining example</phrase>
        </textobject> 
      </mediaobject>
    </screenshot>   
 </sect1>
  
 <sect1 id="intro.feature.measuring">
  <title>Measuring Tools</title>
  <para>
   Distances and surfaces can be measured on the main map with the following tools :
  </para>
    <screenshot>
      <mediaobject>
        <imageobject>
          <imagedata fileref="images/screen_measuringtools.png" format="PNG"/>
        </imageobject>
        <textobject>
          <phrase>Measuring tools</phrase>
        </textobject>        
      </mediaobject>
    </screenshot>     
 </sect1>

 <sect1 id="intro.feature.i18n">
  <title>Internationalization</title>
   <para> Translation handling in &cartoweb; now uses <ulink 
      url="http://www.gnu.org/software/gettext/manual">gettext</ulink>. However 
      internationalization architecture is ready for other translation 
      systems.
   </para>
    <screenshot>
      <mediaobject>
        <imageobject>
          <imagedata fileref="images/screen_i18n.png" format="PNG"/>
        </imageobject>
        <textobject>
          <phrase>Internationalization</phrase>
        </textobject>        
      </mediaobject>
    </screenshot>    
   <para>
     Ta make life easier for translators, scripts that gather the strings 
     to be translated in the templates and in the configuration files are available.
   </para>
 </sect1>

 <sect1 id="intro.feature.access">
  <title>Access Rights</title>
  <para>
   Access to different elements of &cartoweb; can be allowed or denied according 
   to who is currently using the application. Both functionalities and data
   may have access restrictions. For instance, PDF printing may be totally
   unavailable for anonymous access, limited (low resolution) for normal user
   and totally granted (high resolution) for superusers. Similarly, 
   high-resolution aerial views may only be visible within an organization,
   while external users should be content with satellite photographs.
  </para>
  <para>
   A basic (file-based) authentication mechanism is included, but any other
   mechanism that is able to authenticate an user and to link him to a role
   could be used as well.  
  </para>
 </sect1>
 
 <sect1 id="intro.feature.print">
  <title>PDF Output and Other Export Formats</title>
  <para>
   &cartoweb; is able to output a fully configurable PDF document. Some
   options can be chosen by the end user in the following dialog, 
   while the &cartoweb; admin defines which elements (maps, legends, 
   tables, additional logos or watermarks...) are to be printed and
   sets their positions within the page.
  </para>
    <screenshot>
      <mediaobject>
        <imageobject>
          <imagedata fileref="images/screen_printdialog.png" format="PNG"/>
        </imageobject>
        <textobject>
          <phrase>Print dialog</phrase>
        </textobject> 
      </mediaobject>
    </screenshot>    
  <para>
   Other output formats include the graphic formats (jpeg, png,...) of 
   the map itself, simplified html templates and comma-separated 
   values tables of the query results.
  </para>
 </sect1>

</chapter>
