[mapserver-users] Indic Support in Mapserver?

Swapnil Hajare dreamil at gmail.com
Wed Apr 23 03:26:28 EDT 2008


Hello All,
  I have been trying unsuccessfully to login to
trac.osgeo.org/mapserverusing my OSGeo userid (dreamil). After trying
for last 2 days, I am posting
here the bug report which I wanted to post there. Please go through this and
let me know your opinion on the same:

********************************************************************************************
Title: Indic Support (using OpenType fonts) in Mapserver

The current version of Mapserver can render labels on map using LABEL
directive in a map file.For labels, you can use truetype fonts which is
achieved using freetype.Due to this map labels can be displayed in various
non-English languages such as europian and some Asian scripts.

However, for rendering some CTL (Complex Text Layout) scripts, truetype
fonts are not sufficient.Indic Scripts, for example, require much more than
mere juxtaposition of glyphs from a font.Rendering Indic scripts such as
Devanagari, Gujarati, Tamil, Telugu, Bengali etc. is much more complex than
others.To handle this, "intelligent" fonts were designed which contain
embedded rules to help rendering.These were called OpenType fonts (see
http://www.microsoft.com/typography/otfntdev/indicot/default.htm). Though
initiated by M$, OpenType fonts are are now Industry standard for rendering
these complex scripts on Computer using script and language rules. All major
Linux desktops such as GNOME and KDE support OpenType font rendering.To
handle OpenType fonts, various rendering engines have been developed and
have become part of rendering libraries such as Pango(
http://www.pango.org/)/ICU(http://www.icu-project.org/<http://www.pango.org/%29/ICU%28http://www.icu-project.org/>),
Qt etc.It should be noted that, in absence of such a rendering engine,
OpenType fonts act as Truetype fonts i.e. the embedded rendering rules are
not used while doing the glyph formation.

There are numerous OpenType fonts available free/proprietory for Indic
scripts. We have ourselves developed gargi, the first GPLed OpenType font
for Devanagari(http://savannah.nongnu.org/projects/gargi).

Current Mapserver supports truetype fonts using freetype routines, but there
is no support for OpenType fonts. As a result, a text label in any of the
indic scripts is rendered using justaposition of glyphs from the font
provided, without using rendering rules.The result is incorrect rendering.
To show you the difference, here is the snapshot of a map with labels in
Devanagari script (which is a indic script), rendered in correct fashion(
http://indictrans.in/~swapnil/mapserver/required_result.png<http://indictrans.in/%7Eswapnil/mapserver/required_result.png>)
and here is the snapshot as rendered by Mapserver(
http://indictrans.in/~swapnil/mapserver/mapserv_no_render_support_for_ttf.png<http://indictrans.in/%7Eswapnil/mapserver/mapserv_no_render_support_for_ttf.png>)
You may not be able to make out much if you are not familiar with the
script, but for someone who knows the script, its an incorrect or broken
representation of the text.

To solve this, we should add support for OpenType font rendering in
Mapserver.This can be done by embedding some indic rendering routines from
Pango or ICU into the label rendering engine of mapserver. I don't know the
details of how labels are rendered in Mapserver, so somebody knowledgable
should guide. I am prepared to take up the task on behalf of my team (
www.indictrans.in) if I get some guidance about internal working of
Mapserver.As far as performance is concerned, this will hit the speed badly,
but then this can be encoded as a configure options (--with-pango similar to
Firefox implementation
http://developer.spikesource.com/wiki/index.php/Firefox_Indic_Build) so that
it becomes optional.

You may have look at the temporary solution which we are using for the time
being to show indic text on maps using Mapserver here:
http://www.indictrans.in/old/doublebyte/English/doublebyte_l10n_25march_4PM.htmlWe
have numerous localized GIS demo on our website using this approach.
********************************************************************************************

regards,
-- 
Swapnil Hajare
dreamil.indictrans.in
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/mapserver-users/attachments/20080423/0bf135df/attachment.html


More information about the mapserver-users mailing list