SlideShare une entreprise Scribd logo
1  sur  9
Télécharger pour lire hors ligne
Table of Contents
Documentation1.
FAQ2.
User Portal
Use of this Wiki and Ticket system1.
3.
>> GUI layout configuration
p.mapper User Manual
Installation
see Quick install instructions for the main set up instructions.
some info about MapServer installation
Additional PHP settings
PHP.INI
Optional: If you want to make use of the functionality to join database tables to layers (for details
see below) you have to install the PEAR DB or the MDB2 library (you need to define the library in
the INI file). Typically you will define the path to the installation directory of PEAR in the key
include_path (under [PHP] - Paths and Directories)
•
Directory and File Structure
config
The directory for the configuration files. Contains config.ini and subdirectory default, which is the default
location for custom.js, js_config.php, php_config.php, search.xml, and the mapfile. In the future XML files
for detailed configuration could be added.
doc
Contains this documentation.
images
Contains all images used in the user interface. Subdirectory legend contains the legend icons. These are
automatically created and updated.
incphp
This directory contains the PHP files with the overall functions.
common.php: Common functions and variables used in several php files•
custom.php: Customizing settings, at the moment mainly the definition of tools in the toolbar•
js_init.php: Initialize various JS variables from PHP•
/init/init.php & initmap.php: Initialization of the application•
1
initgroups.php: Initialization of GROUP and GLAYER objects•
/locale/language_*.php: localization files for multilingual GUI•
map.php: Functions for rendering map•
/query/...: Functions for queries (identify, select, search)•
legend.php: Functions for creating legend•
group.php: Class functions for GROUP and GLAYER objects•
util.php: Auxiliary functions•
/print/print.php: General print functions•
/print/pdfprint.php: Special print functions for PDF creation•
/print/tcpdf.php: PDF creation functions (Author: Nicola Asuni)•
/xajax/...: PHP parts for XMLHttp/AJAX calls•
javascript
The releases contain all JavaScript files compressed to a single file: 1 for standard files pm_cjs.js and
1 for all jQuery files jquery/jquery_merged.js. All uncompressed source files are under the
subdirectory /src/. If you want to make modifications to an existing JS file it is recommended to do this
in a separate JS file (like custom.js) under the /config/.../ directory adding the modified function
to this file.
All JavaScript files:
common.js: commonly used functions•
custom.js: customized functions, like hyperlink calls, to be adapted to user needs•
forms.js: Functions for forms and scale selection list•
geometry.js: library for measurements/digitizing (Author: Federico Nieri)•
layout.js: set layout parameters (width/height, left/top) of the GUI•
mapserver.js: Main functions used for map creation, query, etc.•
pmapper.js: main p.mapper related functions, resize, GUI, etc.•
pmdraw.js: Map measuring/digitizing functions•
pminit.js: init functions•
pmjson.js: Functions for rendering JSON output of queries•
pmquery.js: generic functions for queries•
search.js: functions for attribute search•
sorttable.js: Sort result table functions (Author: Stuart Langridge)•
toc.js: TOC/legend definition•
wz_jsgraphics.js: Draw measure lines (Author: Walter Zorn)•
xmlhttp.js: XMLHttp/AJAX functions•
zslider.js: Create zoom slider (Author: Mark Wilton-Jones)•
zoombox.js: DHTML zoom/pan interface; based on DOM•
jquery/*.js: jQuery libraries•
templates
Cascading Style sheets. Most formatting options in p.mapper are done via CSS.
Basic Design
Application Structure
The application is set up as a single PHP page (by default named 'map.phtml') with elements set in
DIV's.
2
PHP and Javascript
The application uses a DHTML zoom/pan interface for its navigation. The functions of the zoombox.js file
call as central counterpart the zoombox_apply() function in mapserver.js. This function spreads the calls
to different JavaScript functions that then pass the necessary variables to the PHP files. In p.mapper
2 most calls to PHP files from JavaScript are performed via XMLHttp (AJAX) requests and call PHP
scripts named x_abcdef.php.
Start
The application should be started via a JavaScript 'window.open' command. The file index.html contains
sample links how to start the application from within a standard HTML page. Additional parameters are
the size of the application window like
http://server/map.phtml?winwidth=700&winheight=500
and the language (see section below).
Multilingual User Interface
The application is designed with a multilingual approach. Nearly all text annotation in the user interface is
written dynamically with PHP. The definition of the annotation strings is made in the files below
/incphp/locale/language_xx.php where xx is the country id of the language. It uses a function emulating
the GNU Gettext and could be substituted with the latter. The currently predefined languages are
English•
German•
Italian (with corrections by Luca Marletta)•
French (provided by Paul Hasenohr)•
Dutch (provided by Wim Devos)•
Czech (provided by Jachym Cepicky)•
Brazilian Portuguese (provided by Rodrigo Gaete)•
Slovak (provided by Ivan Mincik)•
Spanish (provided by Nuria González)•
Russian (provided by Anna Kostikova )•
Hungarian (provided by Zoltan Siki)•
Chinese (simplified) (provided by Xiaobao Zang)•
Japanese (provided by Takashi Ota)•
Adapt the locale files or add new ones for additional languages.
p.mapper also contains an alternative function "__p()" in common.php that uses a SQLite 3 database
('localedb.db') with UTF-8 encoding. The database can be edited with a CLI or more comfortable with a
SQLite GUI. Substitute the file-based function "_p()" with this one if you want to use a DB driven solution.
You can also maintain all language settings in the SQLite file 'localedb.db' and write out the
'language_xx.php' files with the PHP script 'extract_locales.php'.
NEW since version 1.9.4: the default character encoding is set to UTF-8. Use a text editor that supports
UTF-8 encoding if editing the locales files (eg. Scite). If your map file includes non-ASCII characters (eg
for layer DESCRIPTION or CLASS names), set the map2unicode entry in the config.ini to 1 (if the map
file is in an encoding other than ISO-8859-1 add a METADATA entry like "MAPFILE_ENCODING"
"ISO-8859-2" to the MAP tag).
3
To call the application in a certain language start the map.phtml file with the URL containing language=xx
in the search portion of the URL, e.g.
http://server/map.phtml?language=en
where predefined settings are: en English, de German, it Italian, fr French, se Swedish, nl Dutch, cz
Czech, br Brazilian, sk Slovak.
The default character encoding of the pages is UTF-8. In order to ensure correct display of query results
from shapefiles the result strings are converted to UTF-8. If the layers are in a different encoding than
ISO-8859-1 or WIN1252 (CP1252) - eg. DOS (CP850), UTF-8 encoding of a PostGIS layer, or other ISO
encodings - you should specify this as a layer METADATA tag "LAYER_ENCODING" like
METADATA
...
"LAYER_ENCODING" "UTF-8"
END
A correct functioning of this conversion requires the ICONV library available in PHP (usually included in
standard builds).
Miscellaneous
Legend The legend icons are created every time when there had been changes to the map file. The
init.php file checks the modification date of the map file and compares it with a log file out of the last
legend icon creation. If the map file is newer, then the icons will be created newly. On the one hand this
keeps legend up-to-date, on the other hand it avoids new creation of the icons and transmission to the
user every time he requests the legend.
Printing For the print function you can choose between HTML and PDF output. The PDF output uses
the free library FPDF by Olivier PLATHEY. You can increase the map image quality for the PDF print by
increasing the setting pdfres in the config.ini file. Note that higher resolution increases file size of
retrieved PDF files and map labels can become difficult to read.
Configuration
» GUI layout configuration
Configuration Options of the INI File
INI File /config/config_xyz.ini settings:
For p.mapper version up to 3.2: see the description in the ini file itself.
For version 3.3: » see INI File Settings with descriptions
Selection of the INI file at start up
It is possible to select the INI file to use for the configuration via the start up URL parameter &config=....
This setting requires to have the config file named like config_name-of-your-configuration.ini. E.g.
&config=test will use the file config_test.ini in the /config/ directory. This allows flexible presentations
based on the same common application code. Because config files can use different map files, one can
also choose a different content via the config parameter. See the file start.html for examples how to start
an application with different configurations.
4
Configuration options of the php_config.php file
Definition of categories for Legend/TOC: Define arrays of groups/layers for each category
displayed in Legend/TOC
•
Tools: Arrays of the tool buttons (including tool tips and javascript functions), and
spacer/separators.
•
List for menu: Print, Download, and Help tools.•
Toolbar theme: Define one of the themes here.•
Title and heading: Heading may include a graphics file.•
Tool mouseovers: Whether tool images will swap between *_on, *_off, *_over.•
PDF Print Settings: Including title, font, header height/color, and logo.•
Additional JavaScript related configuration options: js_config.php
Some settings for various JavaScript related options can to be set in the file
/config/default/js_config.php
For most settings: if not set, reasonable default values are taken.
The layout of the application is set in this file. See more details here
Also all context-menu settings for the TOC are set here
var pmContextMenuList = [
...
]
See the short explanations there. . One of the more important settings in this file
Configuration Options of the MAP File
General Settings
RESOLUTION
In order to allow correct PDF printing and to have correct scales for printing set RESOLUTION tag below
MAP to 96. This is the default screen resolution Windows calculates with. With regard to a vast majority
of users using Windows (and in its default configuration) this should be an appropriate setting.
Symbols
p.mapper uses a symbol called 'circle' for highlighting selected features. This symbol definition has to be
present either in the map file or the symbol file referenced in the map file. The default definition of this
symbol is
SYMBOL
NAME 'circle'
TYPE ELLIPSE
POINTS 1 1 END
FILLED TRUE
END
5
Groups and Layers
p.mapper supports grouping of layers just like the cgi-interface. To achieve this, a secondary group and
layer definition is done via special group/layer objects that include also the support for multi-lingual
applications. It is recommended to avoid spaces in group or layer names.
In the ini file you can set the default order how layers/groups are displayed in the table of contents
(allGroups) and which layers are set visible at start (defGroups). If a layer belong to a group specify the
group name, otherwise use the layer name.
p.mapper supports the definition of thematic categories, thus allowing to group layers in the table of
contents together (see description of INI parameter useCategories). If categories are used, all
layers/groups have to be referenced in the $categories array in /config/php_config.php. Categories are
named in the appropriate language file in the incphp/locale folder.
Layer TOLERANCE settings for Queries
The query function of p.mapper uses the TOLERANCE settings in the map file. This means you should
define tolerances in the map file for each layer you want to be queryable. Recommended are
TOLERANCEUNITS pixels and settings for TOLERANCE between 2 and 5 for vector layers, and 0 for
raster layers.
Layer/Group Descriptions and Fields for Queries
The configuration in the map file for description (i.e. the name displayed in the TOC or legend) of the
layers/groups is done via the METADATA tag DESCRIPTION for each layer. If more than one layer
belongs to a common group the name of the first layer is taken for the group name.
The fields used for displaying query results are defined in the METADATA tag RESULT_FIELDS. For
shapefiles these fields have to be defined completely in upper case. For PostGIS layers the field names
will typically have to be defined in lower case. The field names displayed in the result table are similarly
defined as RESULT_HEADERS
"RESULT_FIELDS" "NAME_IT,TYPE_EN"
"RESULT_HEADERS" "Name,Street Type"
If no definitions are made for these METATAGS then the default values will be taken from the layer
sources.
Notabene: All layers that shall be queryable need a TEMPLATE tag set for either the layer or the
classes. Otherwise the query returns no result for this layer. This is a well known MapServer issue. So
just define something like
LAYER
...
TEMPLATE "void"
...
END
Joining Database tables to layers
This functionality makes use of the PEAR database abstraction layer (module DB). It uses PEAR syntax
for the connection string to the database. For installation and detailed information, especially the
connection string syntax, see the PEAR documentation, especially the section DB. Joins for a layer are
6
defined in the map file METADATA tag for the layer as RESULT_JOIN
Examples:
"RESULT_JOIN" followed by the database string:
PostgreSQL:
<----- PEAR Connection String ------->||<---- DB Parameters (join field, result fields ---->||<Join f
"pgsql://postgres:passwd@host/Database||DB_table@DB_join_field@0@field1,field2,field3,field4||SHAPE_j
ODBC (e.g. MS Access):
"odbc://'':''/host@odbc_connection_dsn||DB_table@DB_join_field@0@field1,field2,field3||SHAPE_join_fie
Because of limitations of the PEAR DB module a join of dBase tables is not working. On MS Windows
systems you can use an ODBC connection instead, pointing to an MS Access file that links the dBase
file (this solutions is also typically faster). On Unix systems you can only use the built-in functions of
Mapserver for DBF joins or use the OGR Virtual Layer definition. A join works also for RASTER layers,
but not for PostGIS layers. PostGIS layers can have a join defined directly in the map file DATA tag (see
PostGIS manual).
Hyperlinks
In order to make the results of queries more flexible the application offers the possibility of hyperlinks for
selected fields. This works both for layer fields and fields out of a joined DB table. The hyperlinks are
defined in the METADATA tag for every layer like the following example:
"RESULT_HYPERLINK" "FIELD1||Link on Detail, FIELD2"
In between the quotes separate the hyperlink fields with commas. If you don't want to have the field
value being displayed as the hyperlink text, you can add an ALIAS name after the field name separated
with a double pipe sign like set for FIELD1 in the example above.
The hyperlink definition has its corresponding JavaScript function openHyperlink() (in the custom.js file)
that is added to every link as the action. The function receives layer, field name, and field value. For
every layer and field you can define how to process this information, e.g. include them in other
JavaScript functions.
XY Layers
One can use point layers based on DBMS tables that have x/y fields for the coordinates. The data can
be in any DB supported by PEAR. The definition in the map file has to be as "XYLAYER_PROPERTIES"
in the METADATA tag, like the following example:
|--- IN METADATA --" |--- PEAR DB definition string ----------||- DB table -@- Filter -||coordinate f
"XYLAYER_PROPERTIES" "sqlite://'':''/home/data/sqlite/gisdb.db||cities_cntrs@inh>100000||x,y"
Currently the data need to be in the same projection system as the map.
Miscellaneous Functions
7
Definition of Attribute Queries (Search Function)
p.mapper offers a simplified definition of attribute queries (search function). Since version 3.1 the
attribute queries are defined in /config/default/search.xml. See here for more details.
The query output is no longer HTML but a JSON string (see www.json.org for details). The output is then
formatted to HTML via Javascript functions parsing the JSON objects. One could also use PHP instead.
This makes it much easier to customize the display of the query results in different layouts. See the file
/incphp/query/json_query_doc.txt for a description of the JSON structure.
Zoom to pre-defined extent
You can start the application already zoomed to a specified extent. The default extent can be defined
either directly with x/y min/max values or read from a feature of a map layer. The default extent is
defined by an additional key/value pair for the starting URL. See the file 'index.html' for an example.
Manually defined extent:
Comma-separated list of coordinates: xmin, ymin, xmax, ymax; like
&me=3678982,2134585,4721175,3092410
Extent read from layer feature:
&zoomLayer=countries&zoomQuery=NAME@1@Italy@0@1
zoomQuery parameters (separated by @):
NAME: name of the field to search (upper case for shapefiles)
1: field type, 0 = numerical, 1 = alphanumerical
Italy: search string (case sensitive)
0: highlight feature, 0 = no, 1 = yes
1: set maximum map extent to feature extent, 0 = no, 1 = yes
Note: the slash character "/", for the URI needs to be properly encoded using %2F, otherwise you will get
a wrong interpretation of the URI and subsequent errors.
Defining the active layers:
Additionally, it is possible to specify the layers/groups that shall be activated (visible) on startup via the
&dg= URL key, with layers comma-separated
&dg=countries,cities
Utilities
If you are using ESRI ArcView 3 you can use the extension AV.p.mapper. This extension helps you to
create a map file out of a given ArcView project. It also adds the necessary information, e.g. the fields to
be used in query functions.
Credits
I would like to thank all who provided contributions to the p.mapper development:
8
Federico Nieri and Alessandro Radaelli from Comune di Prato:
Contributions in quite a few files (Javascript and PHP) in order to make p.mapper 2
compliant with W3C XHTML standards.
♦
Re-structured and enhanced measure functions, including geometry.js library.♦
•
Luca Marletta from beOpen.it: For regularly testing of development versions and reporting bugs.•
All projects and products that p.mapper is based on or uses code snippets from or that gave ideas for the
development are listed below. See here for detailed information about their licenses.
MAPSERVER: Copyright (c) 1996-2001 Regents of the University of Minnesota
PHP/MapScript & GMAP75: Copyright (c) 2000-2002, DM Solutions Group TCPDF:
Copyright (c) Nicola Asuni, based on FPDF Copyright (c) Olivier Plathey PHP PEAR:
Copyright (c) 1997-2002 The PHP Group SLIDER.JS: Copyright (c) by Mark Wilton-Jones
12-13/10/2002 WZ_JSGRAPHICS.JS: Copyright (c) 2002-2004 Walter Zorn ka-map:
Copyright (c) 2005, DM Solutions Group Inc. SORTTABLE.JS: Copyright (c) 1997-date
Stuart Langridge jQuery JavaScript framework, (c) 2006 John Resig jQuery Dimensions
plugin (c) Brandon Aaron jQuery plugin Treeview 1.2 Copyright (c) 2006 Jörn Zaefferer,
Myles Angell jQuery plugin qModal Copyright (c) 2007 Brice Burgess
9

Contenu connexe

Tendances

Mex help hay vai
Mex help hay vaiMex help hay vai
Mex help hay vaiDang Hop
 
intro unix/linux 09
intro unix/linux 09intro unix/linux 09
intro unix/linux 09duquoi
 
Windows command prompt a to z
Windows command prompt a to zWindows command prompt a to z
Windows command prompt a to zSubuh Kurniawan
 
Understanding and Configuring the FO Plug-in for Generating PDF Files: Part I...
Understanding and Configuring the FO Plug-in for Generating PDF Files: Part I...Understanding and Configuring the FO Plug-in for Generating PDF Files: Part I...
Understanding and Configuring the FO Plug-in for Generating PDF Files: Part I...Suite Solutions
 
Tool Development 08 - Windows Command Prompt
Tool Development 08 - Windows Command PromptTool Development 08 - Windows Command Prompt
Tool Development 08 - Windows Command PromptNick Pruehs
 
ADM100 apache-administration-sample-content
ADM100 apache-administration-sample-contentADM100 apache-administration-sample-content
ADM100 apache-administration-sample-contentspiraltrain
 
TYPO3 + CKEditor: Heaven for TYPO3 Developer & Editor
TYPO3 + CKEditor: Heaven for TYPO3 Developer & EditorTYPO3 + CKEditor: Heaven for TYPO3 Developer & Editor
TYPO3 + CKEditor: Heaven for TYPO3 Developer & EditorNITSAN Technologies
 
App designer2 in peoplesoft
App designer2 in peoplesoftApp designer2 in peoplesoft
App designer2 in peoplesoftVenkat Jyesta
 
Data Storage In Android
Data Storage In Android Data Storage In Android
Data Storage In Android Aakash Ugale
 
Android Storage - Internal and External Storages
Android Storage - Internal and External StoragesAndroid Storage - Internal and External Storages
Android Storage - Internal and External StoragesWilliam Lee
 
Using SPMetal for faster SharePoint development
Using SPMetal for faster SharePoint developmentUsing SPMetal for faster SharePoint development
Using SPMetal for faster SharePoint developmentPranav Sharma
 
intro unix/linux 03
intro unix/linux 03intro unix/linux 03
intro unix/linux 03duquoi
 
Working with the IFS on System i
Working with the IFS on System iWorking with the IFS on System i
Working with the IFS on System iChuck Walker
 
intro unix/linux 10
intro unix/linux 10intro unix/linux 10
intro unix/linux 10duquoi
 
Using SP Metal for faster share point development
Using SP Metal for faster share point developmentUsing SP Metal for faster share point development
Using SP Metal for faster share point developmentPranav Sharma
 
Oracle DBA interview_questions
Oracle DBA interview_questionsOracle DBA interview_questions
Oracle DBA interview_questionsNaveen P
 
WEB PROGRAMMING UNIT VI BY BHAVSINGH MALOTH
WEB PROGRAMMING UNIT VI BY BHAVSINGH MALOTHWEB PROGRAMMING UNIT VI BY BHAVSINGH MALOTH
WEB PROGRAMMING UNIT VI BY BHAVSINGH MALOTHBhavsingh Maloth
 

Tendances (20)

Linking in MS-Dos System
Linking in MS-Dos SystemLinking in MS-Dos System
Linking in MS-Dos System
 
Mex help hay vai
Mex help hay vaiMex help hay vai
Mex help hay vai
 
intro unix/linux 09
intro unix/linux 09intro unix/linux 09
intro unix/linux 09
 
Windows command prompt a to z
Windows command prompt a to zWindows command prompt a to z
Windows command prompt a to z
 
Understanding and Configuring the FO Plug-in for Generating PDF Files: Part I...
Understanding and Configuring the FO Plug-in for Generating PDF Files: Part I...Understanding and Configuring the FO Plug-in for Generating PDF Files: Part I...
Understanding and Configuring the FO Plug-in for Generating PDF Files: Part I...
 
Tool Development 08 - Windows Command Prompt
Tool Development 08 - Windows Command PromptTool Development 08 - Windows Command Prompt
Tool Development 08 - Windows Command Prompt
 
ADM100 apache-administration-sample-content
ADM100 apache-administration-sample-contentADM100 apache-administration-sample-content
ADM100 apache-administration-sample-content
 
TYPO3 + CKEditor: Heaven for TYPO3 Developer & Editor
TYPO3 + CKEditor: Heaven for TYPO3 Developer & EditorTYPO3 + CKEditor: Heaven for TYPO3 Developer & Editor
TYPO3 + CKEditor: Heaven for TYPO3 Developer & Editor
 
App designer2 in peoplesoft
App designer2 in peoplesoftApp designer2 in peoplesoft
App designer2 in peoplesoft
 
Db2 tutorial
Db2 tutorialDb2 tutorial
Db2 tutorial
 
Data Storage In Android
Data Storage In Android Data Storage In Android
Data Storage In Android
 
Android Storage - Internal and External Storages
Android Storage - Internal and External StoragesAndroid Storage - Internal and External Storages
Android Storage - Internal and External Storages
 
Using SPMetal for faster SharePoint development
Using SPMetal for faster SharePoint developmentUsing SPMetal for faster SharePoint development
Using SPMetal for faster SharePoint development
 
intro unix/linux 03
intro unix/linux 03intro unix/linux 03
intro unix/linux 03
 
Working with the IFS on System i
Working with the IFS on System iWorking with the IFS on System i
Working with the IFS on System i
 
intro unix/linux 10
intro unix/linux 10intro unix/linux 10
intro unix/linux 10
 
Drupal Modules
Drupal ModulesDrupal Modules
Drupal Modules
 
Using SP Metal for faster share point development
Using SP Metal for faster share point developmentUsing SP Metal for faster share point development
Using SP Metal for faster share point development
 
Oracle DBA interview_questions
Oracle DBA interview_questionsOracle DBA interview_questions
Oracle DBA interview_questions
 
WEB PROGRAMMING UNIT VI BY BHAVSINGH MALOTH
WEB PROGRAMMING UNIT VI BY BHAVSINGH MALOTHWEB PROGRAMMING UNIT VI BY BHAVSINGH MALOTH
WEB PROGRAMMING UNIT VI BY BHAVSINGH MALOTH
 

En vedette

Test Environments for Continuous Delivery
Test Environments for Continuous DeliveryTest Environments for Continuous Delivery
Test Environments for Continuous DeliveryClement Pickering
 
เอกสารประกอบการเรียน เรื่อง พลังงานแสงและระบบสุริยะ
เอกสารประกอบการเรียน เรื่อง พลังงานแสงและระบบสุริยะเอกสารประกอบการเรียน เรื่อง พลังงานแสงและระบบสุริยะ
เอกสารประกอบการเรียน เรื่อง พลังงานแสงและระบบสุริยะKan Pan
 
BEAUTIFUL QUOTES
BEAUTIFUL QUOTESBEAUTIFUL QUOTES
BEAUTIFUL QUOTESminkevi
 
Презентация "Экологические проблемы микрорайона"
Презентация "Экологические проблемы микрорайона"Презентация "Экологические проблемы микрорайона"
Презентация "Экологические проблемы микрорайона"KuklinaGL
 
Capiel smart grids
Capiel smart gridsCapiel smart grids
Capiel smart gridsANIE Energia
 
Week 1 lecture - The Sacred Beginnings
Week 1 lecture - The Sacred BeginningsWeek 1 lecture - The Sacred Beginnings
Week 1 lecture - The Sacred BeginningsJenSantry
 
19151 project ,,a_new_school_schedule’’
19151 project ,,a_new_school_schedule’’19151 project ,,a_new_school_schedule’’
19151 project ,,a_new_school_schedule’’doina_morari
 
Faktor yang menyebabkan guru profesional
Faktor yang menyebabkan guru profesionalFaktor yang menyebabkan guru profesional
Faktor yang menyebabkan guru profesionalyudiyunika
 
Trailer questionnaire
Trailer questionnaireTrailer questionnaire
Trailer questionnairemnatasha1
 
Branded presentation new
Branded presentation newBranded presentation new
Branded presentation newwbneverman
 
Proposal pendirian koperasi konsumsi
Proposal pendirian koperasi konsumsiProposal pendirian koperasi konsumsi
Proposal pendirian koperasi konsumsiinnaannisa
 
37 landasanpendidikan
37 landasanpendidikan37 landasanpendidikan
37 landasanpendidikanyudiyunika
 

En vedette (17)

Test Environments for Continuous Delivery
Test Environments for Continuous DeliveryTest Environments for Continuous Delivery
Test Environments for Continuous Delivery
 
เอกสารประกอบการเรียน เรื่อง พลังงานแสงและระบบสุริยะ
เอกสารประกอบการเรียน เรื่อง พลังงานแสงและระบบสุริยะเอกสารประกอบการเรียน เรื่อง พลังงานแสงและระบบสุริยะ
เอกสารประกอบการเรียน เรื่อง พลังงานแสงและระบบสุริยะ
 
Odesk html set 4
Odesk html set 4Odesk html set 4
Odesk html set 4
 
BEAUTIFUL QUOTES
BEAUTIFUL QUOTESBEAUTIFUL QUOTES
BEAUTIFUL QUOTES
 
Презентация "Экологические проблемы микрорайона"
Презентация "Экологические проблемы микрорайона"Презентация "Экологические проблемы микрорайона"
Презентация "Экологические проблемы микрорайона"
 
Capiel smart grids
Capiel smart gridsCapiel smart grids
Capiel smart grids
 
Week 1 lecture - The Sacred Beginnings
Week 1 lecture - The Sacred BeginningsWeek 1 lecture - The Sacred Beginnings
Week 1 lecture - The Sacred Beginnings
 
19151 project ,,a_new_school_schedule’’
19151 project ,,a_new_school_schedule’’19151 project ,,a_new_school_schedule’’
19151 project ,,a_new_school_schedule’’
 
Faktor yang menyebabkan guru profesional
Faktor yang menyebabkan guru profesionalFaktor yang menyebabkan guru profesional
Faktor yang menyebabkan guru profesional
 
Procedures presentation
Procedures presentationProcedures presentation
Procedures presentation
 
Useful websites
Useful websitesUseful websites
Useful websites
 
Trailer questionnaire
Trailer questionnaireTrailer questionnaire
Trailer questionnaire
 
Branded presentation new
Branded presentation newBranded presentation new
Branded presentation new
 
Proposal pendirian koperasi konsumsi
Proposal pendirian koperasi konsumsiProposal pendirian koperasi konsumsi
Proposal pendirian koperasi konsumsi
 
Hipster
Hipster Hipster
Hipster
 
1800 treat me
1800 treat me1800 treat me
1800 treat me
 
37 landasanpendidikan
37 landasanpendidikan37 landasanpendidikan
37 landasanpendidikan
 

Similaire à Doc manual 3.x

CustomizingStyleSheetsForHTMLOutputs
CustomizingStyleSheetsForHTMLOutputsCustomizingStyleSheetsForHTMLOutputs
CustomizingStyleSheetsForHTMLOutputsSuite Solutions
 
Purdue CS354 Operating Systems 2008
Purdue CS354 Operating Systems 2008Purdue CS354 Operating Systems 2008
Purdue CS354 Operating Systems 2008guestd9065
 
Must be similar to screenshotsI must be able to run the projects.docx
Must be similar to screenshotsI must be able to run the projects.docxMust be similar to screenshotsI must be able to run the projects.docx
Must be similar to screenshotsI must be able to run the projects.docxherthaweston
 
Understanding and Configuring the FO Plug-in for Generating PDF Files: Part I...
Understanding and Configuring the FO Plug-in for Generating PDF Files: Part I...Understanding and Configuring the FO Plug-in for Generating PDF Files: Part I...
Understanding and Configuring the FO Plug-in for Generating PDF Files: Part I...Suite Solutions
 
Doc quickinstall 3.x
Doc quickinstall 3.xDoc quickinstall 3.x
Doc quickinstall 3.xsetankecos
 
The beautyandthebeast phpbat2010
The beautyandthebeast phpbat2010The beautyandthebeast phpbat2010
The beautyandthebeast phpbat2010Bastian Feder
 
Automating API Documentation
Automating API DocumentationAutomating API Documentation
Automating API DocumentationSelvakumar T S
 
Managing console of I/o operations & working with files
Managing console of I/o operations & working with filesManaging console of I/o operations & working with files
Managing console of I/o operations & working with fileslalithambiga kamaraj
 
OroCRM Partner Technical Training: September 2015
OroCRM Partner Technical Training: September 2015OroCRM Partner Technical Training: September 2015
OroCRM Partner Technical Training: September 2015Oro Inc.
 
Recommender.system.presentation.pjug.05.20.2014
Recommender.system.presentation.pjug.05.20.2014Recommender.system.presentation.pjug.05.20.2014
Recommender.system.presentation.pjug.05.20.2014rpbrehm
 
[Mentor Graphics] A Perforce-based Automatic Document Generation System
[Mentor Graphics] A Perforce-based Automatic Document Generation System[Mentor Graphics] A Perforce-based Automatic Document Generation System
[Mentor Graphics] A Perforce-based Automatic Document Generation SystemPerforce
 
Getting started-with-zend-framework
Getting started-with-zend-frameworkGetting started-with-zend-framework
Getting started-with-zend-frameworkNilesh Bangar
 
Jaffle: managing processes and log messages of multiple applications in devel...
Jaffle: managing processes and log messages of multiple applicationsin devel...Jaffle: managing processes and log messages of multiple applicationsin devel...
Jaffle: managing processes and log messages of multiple applications in devel...Masaki Yatsu
 

Similaire à Doc manual 3.x (20)

CustomizingStyleSheetsForHTMLOutputs
CustomizingStyleSheetsForHTMLOutputsCustomizingStyleSheetsForHTMLOutputs
CustomizingStyleSheetsForHTMLOutputs
 
Purdue CS354 Operating Systems 2008
Purdue CS354 Operating Systems 2008Purdue CS354 Operating Systems 2008
Purdue CS354 Operating Systems 2008
 
Must be similar to screenshotsI must be able to run the projects.docx
Must be similar to screenshotsI must be able to run the projects.docxMust be similar to screenshotsI must be able to run the projects.docx
Must be similar to screenshotsI must be able to run the projects.docx
 
Systems framework
Systems frameworkSystems framework
Systems framework
 
Module net cdf4
Module net cdf4 Module net cdf4
Module net cdf4
 
Understanding and Configuring the FO Plug-in for Generating PDF Files: Part I...
Understanding and Configuring the FO Plug-in for Generating PDF Files: Part I...Understanding and Configuring the FO Plug-in for Generating PDF Files: Part I...
Understanding and Configuring the FO Plug-in for Generating PDF Files: Part I...
 
linux installation.pdf
linux installation.pdflinux installation.pdf
linux installation.pdf
 
Autotools
AutotoolsAutotools
Autotools
 
Doc quickinstall 3.x
Doc quickinstall 3.xDoc quickinstall 3.x
Doc quickinstall 3.x
 
The beautyandthebeast phpbat2010
The beautyandthebeast phpbat2010The beautyandthebeast phpbat2010
The beautyandthebeast phpbat2010
 
Automating API Documentation
Automating API DocumentationAutomating API Documentation
Automating API Documentation
 
Lab 1 Essay
Lab 1 EssayLab 1 Essay
Lab 1 Essay
 
Intro to OctoberCMS
Intro to OctoberCMSIntro to OctoberCMS
Intro to OctoberCMS
 
AtoZ about TYPO3 v8 CMS
AtoZ about TYPO3 v8 CMSAtoZ about TYPO3 v8 CMS
AtoZ about TYPO3 v8 CMS
 
Managing console of I/o operations & working with files
Managing console of I/o operations & working with filesManaging console of I/o operations & working with files
Managing console of I/o operations & working with files
 
OroCRM Partner Technical Training: September 2015
OroCRM Partner Technical Training: September 2015OroCRM Partner Technical Training: September 2015
OroCRM Partner Technical Training: September 2015
 
Recommender.system.presentation.pjug.05.20.2014
Recommender.system.presentation.pjug.05.20.2014Recommender.system.presentation.pjug.05.20.2014
Recommender.system.presentation.pjug.05.20.2014
 
[Mentor Graphics] A Perforce-based Automatic Document Generation System
[Mentor Graphics] A Perforce-based Automatic Document Generation System[Mentor Graphics] A Perforce-based Automatic Document Generation System
[Mentor Graphics] A Perforce-based Automatic Document Generation System
 
Getting started-with-zend-framework
Getting started-with-zend-frameworkGetting started-with-zend-framework
Getting started-with-zend-framework
 
Jaffle: managing processes and log messages of multiple applications in devel...
Jaffle: managing processes and log messages of multiple applicationsin devel...Jaffle: managing processes and log messages of multiple applicationsin devel...
Jaffle: managing processes and log messages of multiple applications in devel...
 

Dernier

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 

Dernier (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 

Doc manual 3.x

  • 1. Table of Contents Documentation1. FAQ2. User Portal Use of this Wiki and Ticket system1. 3. >> GUI layout configuration p.mapper User Manual Installation see Quick install instructions for the main set up instructions. some info about MapServer installation Additional PHP settings PHP.INI Optional: If you want to make use of the functionality to join database tables to layers (for details see below) you have to install the PEAR DB or the MDB2 library (you need to define the library in the INI file). Typically you will define the path to the installation directory of PEAR in the key include_path (under [PHP] - Paths and Directories) • Directory and File Structure config The directory for the configuration files. Contains config.ini and subdirectory default, which is the default location for custom.js, js_config.php, php_config.php, search.xml, and the mapfile. In the future XML files for detailed configuration could be added. doc Contains this documentation. images Contains all images used in the user interface. Subdirectory legend contains the legend icons. These are automatically created and updated. incphp This directory contains the PHP files with the overall functions. common.php: Common functions and variables used in several php files• custom.php: Customizing settings, at the moment mainly the definition of tools in the toolbar• js_init.php: Initialize various JS variables from PHP• /init/init.php & initmap.php: Initialization of the application• 1
  • 2. initgroups.php: Initialization of GROUP and GLAYER objects• /locale/language_*.php: localization files for multilingual GUI• map.php: Functions for rendering map• /query/...: Functions for queries (identify, select, search)• legend.php: Functions for creating legend• group.php: Class functions for GROUP and GLAYER objects• util.php: Auxiliary functions• /print/print.php: General print functions• /print/pdfprint.php: Special print functions for PDF creation• /print/tcpdf.php: PDF creation functions (Author: Nicola Asuni)• /xajax/...: PHP parts for XMLHttp/AJAX calls• javascript The releases contain all JavaScript files compressed to a single file: 1 for standard files pm_cjs.js and 1 for all jQuery files jquery/jquery_merged.js. All uncompressed source files are under the subdirectory /src/. If you want to make modifications to an existing JS file it is recommended to do this in a separate JS file (like custom.js) under the /config/.../ directory adding the modified function to this file. All JavaScript files: common.js: commonly used functions• custom.js: customized functions, like hyperlink calls, to be adapted to user needs• forms.js: Functions for forms and scale selection list• geometry.js: library for measurements/digitizing (Author: Federico Nieri)• layout.js: set layout parameters (width/height, left/top) of the GUI• mapserver.js: Main functions used for map creation, query, etc.• pmapper.js: main p.mapper related functions, resize, GUI, etc.• pmdraw.js: Map measuring/digitizing functions• pminit.js: init functions• pmjson.js: Functions for rendering JSON output of queries• pmquery.js: generic functions for queries• search.js: functions for attribute search• sorttable.js: Sort result table functions (Author: Stuart Langridge)• toc.js: TOC/legend definition• wz_jsgraphics.js: Draw measure lines (Author: Walter Zorn)• xmlhttp.js: XMLHttp/AJAX functions• zslider.js: Create zoom slider (Author: Mark Wilton-Jones)• zoombox.js: DHTML zoom/pan interface; based on DOM• jquery/*.js: jQuery libraries• templates Cascading Style sheets. Most formatting options in p.mapper are done via CSS. Basic Design Application Structure The application is set up as a single PHP page (by default named 'map.phtml') with elements set in DIV's. 2
  • 3. PHP and Javascript The application uses a DHTML zoom/pan interface for its navigation. The functions of the zoombox.js file call as central counterpart the zoombox_apply() function in mapserver.js. This function spreads the calls to different JavaScript functions that then pass the necessary variables to the PHP files. In p.mapper 2 most calls to PHP files from JavaScript are performed via XMLHttp (AJAX) requests and call PHP scripts named x_abcdef.php. Start The application should be started via a JavaScript 'window.open' command. The file index.html contains sample links how to start the application from within a standard HTML page. Additional parameters are the size of the application window like http://server/map.phtml?winwidth=700&winheight=500 and the language (see section below). Multilingual User Interface The application is designed with a multilingual approach. Nearly all text annotation in the user interface is written dynamically with PHP. The definition of the annotation strings is made in the files below /incphp/locale/language_xx.php where xx is the country id of the language. It uses a function emulating the GNU Gettext and could be substituted with the latter. The currently predefined languages are English• German• Italian (with corrections by Luca Marletta)• French (provided by Paul Hasenohr)• Dutch (provided by Wim Devos)• Czech (provided by Jachym Cepicky)• Brazilian Portuguese (provided by Rodrigo Gaete)• Slovak (provided by Ivan Mincik)• Spanish (provided by Nuria González)• Russian (provided by Anna Kostikova )• Hungarian (provided by Zoltan Siki)• Chinese (simplified) (provided by Xiaobao Zang)• Japanese (provided by Takashi Ota)• Adapt the locale files or add new ones for additional languages. p.mapper also contains an alternative function "__p()" in common.php that uses a SQLite 3 database ('localedb.db') with UTF-8 encoding. The database can be edited with a CLI or more comfortable with a SQLite GUI. Substitute the file-based function "_p()" with this one if you want to use a DB driven solution. You can also maintain all language settings in the SQLite file 'localedb.db' and write out the 'language_xx.php' files with the PHP script 'extract_locales.php'. NEW since version 1.9.4: the default character encoding is set to UTF-8. Use a text editor that supports UTF-8 encoding if editing the locales files (eg. Scite). If your map file includes non-ASCII characters (eg for layer DESCRIPTION or CLASS names), set the map2unicode entry in the config.ini to 1 (if the map file is in an encoding other than ISO-8859-1 add a METADATA entry like "MAPFILE_ENCODING" "ISO-8859-2" to the MAP tag). 3
  • 4. To call the application in a certain language start the map.phtml file with the URL containing language=xx in the search portion of the URL, e.g. http://server/map.phtml?language=en where predefined settings are: en English, de German, it Italian, fr French, se Swedish, nl Dutch, cz Czech, br Brazilian, sk Slovak. The default character encoding of the pages is UTF-8. In order to ensure correct display of query results from shapefiles the result strings are converted to UTF-8. If the layers are in a different encoding than ISO-8859-1 or WIN1252 (CP1252) - eg. DOS (CP850), UTF-8 encoding of a PostGIS layer, or other ISO encodings - you should specify this as a layer METADATA tag "LAYER_ENCODING" like METADATA ... "LAYER_ENCODING" "UTF-8" END A correct functioning of this conversion requires the ICONV library available in PHP (usually included in standard builds). Miscellaneous Legend The legend icons are created every time when there had been changes to the map file. The init.php file checks the modification date of the map file and compares it with a log file out of the last legend icon creation. If the map file is newer, then the icons will be created newly. On the one hand this keeps legend up-to-date, on the other hand it avoids new creation of the icons and transmission to the user every time he requests the legend. Printing For the print function you can choose between HTML and PDF output. The PDF output uses the free library FPDF by Olivier PLATHEY. You can increase the map image quality for the PDF print by increasing the setting pdfres in the config.ini file. Note that higher resolution increases file size of retrieved PDF files and map labels can become difficult to read. Configuration » GUI layout configuration Configuration Options of the INI File INI File /config/config_xyz.ini settings: For p.mapper version up to 3.2: see the description in the ini file itself. For version 3.3: » see INI File Settings with descriptions Selection of the INI file at start up It is possible to select the INI file to use for the configuration via the start up URL parameter &config=.... This setting requires to have the config file named like config_name-of-your-configuration.ini. E.g. &config=test will use the file config_test.ini in the /config/ directory. This allows flexible presentations based on the same common application code. Because config files can use different map files, one can also choose a different content via the config parameter. See the file start.html for examples how to start an application with different configurations. 4
  • 5. Configuration options of the php_config.php file Definition of categories for Legend/TOC: Define arrays of groups/layers for each category displayed in Legend/TOC • Tools: Arrays of the tool buttons (including tool tips and javascript functions), and spacer/separators. • List for menu: Print, Download, and Help tools.• Toolbar theme: Define one of the themes here.• Title and heading: Heading may include a graphics file.• Tool mouseovers: Whether tool images will swap between *_on, *_off, *_over.• PDF Print Settings: Including title, font, header height/color, and logo.• Additional JavaScript related configuration options: js_config.php Some settings for various JavaScript related options can to be set in the file /config/default/js_config.php For most settings: if not set, reasonable default values are taken. The layout of the application is set in this file. See more details here Also all context-menu settings for the TOC are set here var pmContextMenuList = [ ... ] See the short explanations there. . One of the more important settings in this file Configuration Options of the MAP File General Settings RESOLUTION In order to allow correct PDF printing and to have correct scales for printing set RESOLUTION tag below MAP to 96. This is the default screen resolution Windows calculates with. With regard to a vast majority of users using Windows (and in its default configuration) this should be an appropriate setting. Symbols p.mapper uses a symbol called 'circle' for highlighting selected features. This symbol definition has to be present either in the map file or the symbol file referenced in the map file. The default definition of this symbol is SYMBOL NAME 'circle' TYPE ELLIPSE POINTS 1 1 END FILLED TRUE END 5
  • 6. Groups and Layers p.mapper supports grouping of layers just like the cgi-interface. To achieve this, a secondary group and layer definition is done via special group/layer objects that include also the support for multi-lingual applications. It is recommended to avoid spaces in group or layer names. In the ini file you can set the default order how layers/groups are displayed in the table of contents (allGroups) and which layers are set visible at start (defGroups). If a layer belong to a group specify the group name, otherwise use the layer name. p.mapper supports the definition of thematic categories, thus allowing to group layers in the table of contents together (see description of INI parameter useCategories). If categories are used, all layers/groups have to be referenced in the $categories array in /config/php_config.php. Categories are named in the appropriate language file in the incphp/locale folder. Layer TOLERANCE settings for Queries The query function of p.mapper uses the TOLERANCE settings in the map file. This means you should define tolerances in the map file for each layer you want to be queryable. Recommended are TOLERANCEUNITS pixels and settings for TOLERANCE between 2 and 5 for vector layers, and 0 for raster layers. Layer/Group Descriptions and Fields for Queries The configuration in the map file for description (i.e. the name displayed in the TOC or legend) of the layers/groups is done via the METADATA tag DESCRIPTION for each layer. If more than one layer belongs to a common group the name of the first layer is taken for the group name. The fields used for displaying query results are defined in the METADATA tag RESULT_FIELDS. For shapefiles these fields have to be defined completely in upper case. For PostGIS layers the field names will typically have to be defined in lower case. The field names displayed in the result table are similarly defined as RESULT_HEADERS "RESULT_FIELDS" "NAME_IT,TYPE_EN" "RESULT_HEADERS" "Name,Street Type" If no definitions are made for these METATAGS then the default values will be taken from the layer sources. Notabene: All layers that shall be queryable need a TEMPLATE tag set for either the layer or the classes. Otherwise the query returns no result for this layer. This is a well known MapServer issue. So just define something like LAYER ... TEMPLATE "void" ... END Joining Database tables to layers This functionality makes use of the PEAR database abstraction layer (module DB). It uses PEAR syntax for the connection string to the database. For installation and detailed information, especially the connection string syntax, see the PEAR documentation, especially the section DB. Joins for a layer are 6
  • 7. defined in the map file METADATA tag for the layer as RESULT_JOIN Examples: "RESULT_JOIN" followed by the database string: PostgreSQL: <----- PEAR Connection String ------->||<---- DB Parameters (join field, result fields ---->||<Join f "pgsql://postgres:passwd@host/Database||DB_table@DB_join_field@0@field1,field2,field3,field4||SHAPE_j ODBC (e.g. MS Access): "odbc://'':''/host@odbc_connection_dsn||DB_table@DB_join_field@0@field1,field2,field3||SHAPE_join_fie Because of limitations of the PEAR DB module a join of dBase tables is not working. On MS Windows systems you can use an ODBC connection instead, pointing to an MS Access file that links the dBase file (this solutions is also typically faster). On Unix systems you can only use the built-in functions of Mapserver for DBF joins or use the OGR Virtual Layer definition. A join works also for RASTER layers, but not for PostGIS layers. PostGIS layers can have a join defined directly in the map file DATA tag (see PostGIS manual). Hyperlinks In order to make the results of queries more flexible the application offers the possibility of hyperlinks for selected fields. This works both for layer fields and fields out of a joined DB table. The hyperlinks are defined in the METADATA tag for every layer like the following example: "RESULT_HYPERLINK" "FIELD1||Link on Detail, FIELD2" In between the quotes separate the hyperlink fields with commas. If you don't want to have the field value being displayed as the hyperlink text, you can add an ALIAS name after the field name separated with a double pipe sign like set for FIELD1 in the example above. The hyperlink definition has its corresponding JavaScript function openHyperlink() (in the custom.js file) that is added to every link as the action. The function receives layer, field name, and field value. For every layer and field you can define how to process this information, e.g. include them in other JavaScript functions. XY Layers One can use point layers based on DBMS tables that have x/y fields for the coordinates. The data can be in any DB supported by PEAR. The definition in the map file has to be as "XYLAYER_PROPERTIES" in the METADATA tag, like the following example: |--- IN METADATA --" |--- PEAR DB definition string ----------||- DB table -@- Filter -||coordinate f "XYLAYER_PROPERTIES" "sqlite://'':''/home/data/sqlite/gisdb.db||cities_cntrs@inh>100000||x,y" Currently the data need to be in the same projection system as the map. Miscellaneous Functions 7
  • 8. Definition of Attribute Queries (Search Function) p.mapper offers a simplified definition of attribute queries (search function). Since version 3.1 the attribute queries are defined in /config/default/search.xml. See here for more details. The query output is no longer HTML but a JSON string (see www.json.org for details). The output is then formatted to HTML via Javascript functions parsing the JSON objects. One could also use PHP instead. This makes it much easier to customize the display of the query results in different layouts. See the file /incphp/query/json_query_doc.txt for a description of the JSON structure. Zoom to pre-defined extent You can start the application already zoomed to a specified extent. The default extent can be defined either directly with x/y min/max values or read from a feature of a map layer. The default extent is defined by an additional key/value pair for the starting URL. See the file 'index.html' for an example. Manually defined extent: Comma-separated list of coordinates: xmin, ymin, xmax, ymax; like &me=3678982,2134585,4721175,3092410 Extent read from layer feature: &zoomLayer=countries&zoomQuery=NAME@1@Italy@0@1 zoomQuery parameters (separated by @): NAME: name of the field to search (upper case for shapefiles) 1: field type, 0 = numerical, 1 = alphanumerical Italy: search string (case sensitive) 0: highlight feature, 0 = no, 1 = yes 1: set maximum map extent to feature extent, 0 = no, 1 = yes Note: the slash character "/", for the URI needs to be properly encoded using %2F, otherwise you will get a wrong interpretation of the URI and subsequent errors. Defining the active layers: Additionally, it is possible to specify the layers/groups that shall be activated (visible) on startup via the &dg= URL key, with layers comma-separated &dg=countries,cities Utilities If you are using ESRI ArcView 3 you can use the extension AV.p.mapper. This extension helps you to create a map file out of a given ArcView project. It also adds the necessary information, e.g. the fields to be used in query functions. Credits I would like to thank all who provided contributions to the p.mapper development: 8
  • 9. Federico Nieri and Alessandro Radaelli from Comune di Prato: Contributions in quite a few files (Javascript and PHP) in order to make p.mapper 2 compliant with W3C XHTML standards. ♦ Re-structured and enhanced measure functions, including geometry.js library.♦ • Luca Marletta from beOpen.it: For regularly testing of development versions and reporting bugs.• All projects and products that p.mapper is based on or uses code snippets from or that gave ideas for the development are listed below. See here for detailed information about their licenses. MAPSERVER: Copyright (c) 1996-2001 Regents of the University of Minnesota PHP/MapScript & GMAP75: Copyright (c) 2000-2002, DM Solutions Group TCPDF: Copyright (c) Nicola Asuni, based on FPDF Copyright (c) Olivier Plathey PHP PEAR: Copyright (c) 1997-2002 The PHP Group SLIDER.JS: Copyright (c) by Mark Wilton-Jones 12-13/10/2002 WZ_JSGRAPHICS.JS: Copyright (c) 2002-2004 Walter Zorn ka-map: Copyright (c) 2005, DM Solutions Group Inc. SORTTABLE.JS: Copyright (c) 1997-date Stuart Langridge jQuery JavaScript framework, (c) 2006 John Resig jQuery Dimensions plugin (c) Brandon Aaron jQuery plugin Treeview 1.2 Copyright (c) 2006 Jörn Zaefferer, Myles Angell jQuery plugin qModal Copyright (c) 2007 Brice Burgess 9