Status of AGG support?

Steve Lime Steve.Lime at DNR.STATE.MN.US
Tue Jul 17 17:11:12 EDT 2007


I'll need to commit the code then that resets the alpha channel to 0 post AGG rendering
then. In my testing that resolved this issue.

Steve

>>> On 7/16/2007 at 3:16 PM, in message <469BD230.7050905 at dmsolutions.ca>,
Yewondwossen Assefa <assefa at DMSOLUTIONS.CA> wrote:
> Stephen Woodbridge wrote:
>> Hi Assefa,
>> 
>> Were you able to reproduce the problem I have? Steve Lime did. I am 
>> wondering how you generated your images using AGG and if you can change 
>> my test mapfile to make it work like yours?
>>
> 
> Sorry for the delay. I was able to reproduce it. I guess the only 
> difference that I see that with the map file that we used here was that 
> the style was using an outline color and that might have 'hidden' the 
> issues that you are seeing.
> 
>> -Steve
>> 
>> Yewondwossen Assefa wrote:
>>> I have downloaded the zip and will give it a try later today.
>>>
>>> Best Regards
>>>
>>> Stephen Woodbridge wrote:
>>>> Assefa,
>>>>
>>>> I created and ran this test last night, based on the current svn 
>>>> source. Can you reproduce the black ugly text that follows the 
>>>> spiral. Can anyone else reproduce the image below on their local 
>>>> builds? If not, then I might have a .configure or build issue with my 
>>>> system:
>>>>
>>>> woodbri at carto:/u/data$ uname -a
>>>> Linux carto 2.6.15-1-em64t-p4-smp #2 SMP Tue Mar 7 08:19:39 UTC 2006 
>>>> x86_64 GNU/Linux
>>>>
>>>> You can download a zip file with everything you need to reproduce 
>>>> this test locally.  http://imaptools.com/downloads/spiral-test.zip 
>>>>
>>>> http://imaptools.com/cgi-bin/mapserv-4.99?mode=map&map=/u/data/test/spiral.map 
>>>>
>>>> 
> http://imaptools.com/cgi-bin/mapserv-4.99?mode=map&map=/u/data/test/spiral.map&ma 
> p_imagetype=PNG8 
>>>>
>>>>
>>>> MAP
>>>>   NAME "spiral test map"
>>>>   EXTENT  -26 -26 26 26
>>>>   SIZE 700 700
>>>>   FONTSET "fontset.txt"
>>>>   IMAGECOLOR 153 179 204
>>>>   UNITS DD
>>>>   IMAGETYPE "agg/png24"
>>>>
>>>>   OUTPUTFORMAT
>>>>     NAME "agg/png24"
>>>>     MIMETYPE "image/png; mode=24bit"
>>>>     DRIVER "AGG/PNG"
>>>>     EXTENSION "png"
>>>>     IMAGEMODE "RGB"
>>>>     FORMATOPTION "PALETTE_FORCE=TRUE"
>>>>     FORMATOPTION "PALETTE=/u/data/maps/palette-google-agg.txt"
>>>>   END
>>>>
>>>>   OUTPUTFORMAT
>>>>     NAME PNG8
>>>>     DRIVER "GD/PNG"
>>>>     EXTENSION "png"
>>>>     MIMETYPE "image/png"
>>>>     IMAGEMODE RGBA
>>>>     TRANSPARENT OFF
>>>>     FORMATOPTION "QUANTIZE_FORCE=ON"
>>>>     FORMATOPTION "QUANTIZE_DITHER=OFF"
>>>>     FORMATOPTION "QUANTIZE_COLORS=256"
>>>>   END
>>>>
>>>>   LAYER
>>>>     NAME "Annotation"
>>>>     STATUS DEFAULT
>>>>     TYPE ANNOTATION
>>>>     FEATURE
>>>>       POINTS -25 -25 END
>>>>       TEXT "Simple Label"
>>>>     END
>>>>     LABELCACHE OFF
>>>>     CLASS
>>>>       COLOR 0 0 0
>>>>       LABEL
>>>>         FONT "arial"
>>>>         TYPE TRUETYPE
>>>>         POSITION ur
>>>>         SIZE 14
>>>>         BUFFER 4
>>>>         COLOR 50 50 50
>>>>         OUTLINECOLOR 238 238 238
>>>>         ANTIALIAS TRUE
>>>>         PARTIALS FALSE
>>>>         MINDISTANCE 250
>>>>         MINFEATURESIZE 10
>>>>       END
>>>>     END
>>>>   END
>>>>
>>>>   LAYER
>>>>     NAME "Spiral"
>>>>     STATUS DEFAULT
>>>>     DATA "spiral"
>>>>     TYPE LINE
>>>>     TRANSPARENCY ALPHA
>>>>     LABELITEM "NAME"
>>>>     CLASS
>>>>       STYLE
>>>>         COLOR 170 153 136
>>>>         WIDTH 20
>>>>         ANTIALIAS TRUE
>>>>       END
>>>>       STYLE
>>>>         COLOR 255 255 255
>>>>         WIDTH 17
>>>>         ANTIALIAS TRUE
>>>>       END
>>>>       LABEL
>>>>         ANGLE FOLLOW
>>>>         FONT "arial"
>>>>         TYPE TRUETYPE
>>>>         POSITION CC
>>>>         SIZE 14
>>>>         BUFFER 4
>>>>         COLOR 0 0 0
>>>>         ANTIALIAS TRUE
>>>>         PARTIALS FALSE
>>>>       END
>>>>     END
>>>>   END
>>>>
>>>> END
>>>>
>>>>
>>>> -Steve
>>>>
>>>>
>>>> Yewondwossen Assefa wrote:
>>>>> screen grab for label ALIGN FOLLOW
>>>>>
>>>>>
>>>>> Stephen Woodbridge wrote:
>>>>>> Assefa,
>>>>>>
>>>>>> Thanks.
>>>>>>
>>>>>> 1) Can you confirm that the code you explained below is what is 
>>>>>> currently in SVN?
>>>>>> 2) What does your OUTPUTFORMAT look like?
>>>>>> 3) Is there anything special that I need to do to reproduce this? 
>>>>>> Does not scheme for generating the palette.txt file meet the 
>>>>>> requirements of the implemented algorithm.
>>>>>> 4) Did you try LABEL ALIGN FOLLOW? and did you get labels that 
>>>>>> looked better than the comparison that I showed below?
>>>>>>
>>>>>> Best regards,
>>>>>>   -Steve
>>>>>>
>>>>>>
>>>>>> Yewondwossen Assefa wrote:
>>>>>>> Steve,
>>>>>>>
>>>>>>>  We tried different ways to allocate an appropriate color palette 
>>>>>>> for 24-8 bit conversion and at the end the following seems to give 
>>>>>>> a good results from the tests we did  (function in mapgd.c 
>>>>>>> msImageCreateWithPaletteGD):
>>>>>>>
>>>>>>>   - use gd function gdImageCreatePaletteFromTrueColor to create an 
>>>>>>> image  with a number of colors 256 - number of colors from the 
>>>>>>> static palette file
>>>>>>>   - final image would use the generated colors + the ones that are 
>>>>>>> defined in the palette color.
>>>>>>>
>>>>>>> It adds an additional step/time to do it and there could probably 
>>>>>>> be some optimizing but It seems to work ok specially for maps 
>>>>>>> generated for tiled environment like kaMap.
>>>>>>>
>>>>>>> Best Regards
>>>>>>>
>>>>>>>
>>>>>>> Stephen Woodbridge wrote:
>>>>>>>> Paul, Assefa,
>>>>>>>>
>>>>>>>> How would I use that?
>>>>>>>>
>>>>>>>> Also, I commented out the
>>>>>>>>
>>>>>>>>     #FORMATOPTION "PALETTE_FORCE=TRUE"
>>>>>>>>     #FORMATOPTION "PALETTE=/u/data/maps/palette-google-agg.txt"
>>>>>>>>
>>>>>>>> but the label follows test still looks the same.
>>>>>>>>
>>>>>>>> -Steve
>>>>>>>>
>>>>>>>> Paul Spencer wrote:
>>>>>>>>> Steve (and Steve),
>>>>>>>>>
>>>>>>>>> I believe Assefa committed a change that allows you to specify a 
>>>>>>>>> fixed partial palette and GD interpolates the remaining colours.
>>>>>>>>>
>>>>>>>>> Cheers
>>>>>>>>>
>>>>>>>>> Paul
>>>>>>>>>
>>>>>>>>> On 7-Jul-07, at 12:53 AM, Stephen Woodbridge wrote:
>>>>>>>>>
>>>>>>>>>> Steve Lime wrote:
>>>>>>>>>>> Thanks, that's why the output blows. The forced palette has no 
>>>>>>>>>>> room
>>>>>>>>>>> for interpretation those are the only colors allocated in the 
>>>>>>>>>>> output
>>>>>>>>>>> image and all colors are mapped to that palette. That is done 
>>>>>>>>>>> after
>>>>>>>>>>> all rendering is complete. It works this way to support tiling to
>>>>>>>>>>> that colors are absolutely consistent from tile to tile. The 
>>>>>>>>>>> option
>>>>>>>>>>> really isn't useful beyond offline mass tiling.
>>>>>>>>>>
>>>>>>>>>> OK, well then have we tried an alternative approach to handling 
>>>>>>>>>> the palette. That would be to take the approach that I thought 
>>>>>>>>>> it was doing :)
>>>>>>>>>>
>>>>>>>>>> If you define the palette using the method that I described 
>>>>>>>>>> that would freeze the primary colors used in the mapfile. All 
>>>>>>>>>> other palette colors would be allowed to be generated 
>>>>>>>>>> dynamically as needed. When the color reduction process runs it 
>>>>>>>>>> would have to honor those colors in the palette, but could also 
>>>>>>>>>> add additional colors as needed in the additional slots. This 
>>>>>>>>>> would fix the big color shifts that we were seeing in the 
>>>>>>>>>> tiling and any shifting in the anti-aliasing between meta-tiles 
>>>>>>>>>> would probably not be noticeable.
>>>>>>>>>>
>>>>>>>>>> I think the current approach it way to rigid and absolute, but 
>>>>>>>>>> it might be useful for some situations.
>>>>>>>>>>
>>>>>>>>>> If the above is relatively easy to implement, I would be happy 
>>>>>>>>>> to run some tests on it.
>>>>>>>>>>
>>>>>>>>>> -Steve W
>>>>>>>>>>
>>>>>>>>>>> Steve
>>>>>>>>>>>>>> Stephen Woodbridge <woodbri at SWOODBRIDGE.COM> 07/05/07 11:28 PM
>>>>>>>>>>>>>> >>>
>>>>>>>>>>> Steve Lime wrote:
>>>>>>>>>>>> For comparison purposes I would use 24-bit png regardless.
>>>>>>>>>>>> My question would be how is the palette being constructed? 
>>>>>>>>>>>> Ideally
>>>>>>>>>>> I take a very simple approach to the palette.txt file and that 
>>>>>>>>>>> is:
>>>>>>>>>>> grep -i color mapfile.map > a.txt #edit a.txt a bunch sort -u 
>>>>>>>>>>> a.txt >
>>>>>>>>>>> palette.txt
>>>>>>>>>>> wc -l palette.txt 36
>>>>>>>>>>> so the rest of the colors can be allocated for anti-alias colors.
>>>>>>>>>>> -Steve W
>>>>>>>>>>>> you would create a representative image with lot's of 
>>>>>>>>>>>> linework and annotation and then use Gimp, Imagemagick or 
>>>>>>>>>>>> Photoshop to reduce colors to a 8-bit palette and use that. 
>>>>>>>>>>>> Otherwise the palette force
>>>>>>>>>>>>  option will do a distance computation and the results could get
>>>>>>>>>>>> ugly (and these images are proof)...
>>>>>>>>>>>> Steve
>>>>>>>>>>>>>>> Paul Spencer <pspencer at DMSOLUTIONS.CA> 07/05/07 9:32 PM >>>
>>>>>>>>>>>> PHP? Steve, I'm shocked its not a perl page ;)
>>>>>>>>>>>> I have noticed that the text gets 'bolder' when reducing the
>>>>>>>>>>>> palette, but not like this.
>>>>>>>>>>>> Have you tried without the formatoption for reducing the image?
>>>>>>>>>>>> One thing that may happen is that the antialiasing colours are
>>>>>>>>>>>> getting mapped to black because there isn't room in the 
>>>>>>>>>>>> palette to
>>>>>>>>>>>> allocate the needed colours.  That does seem unlikely, though.
>>>>>>>>>>>> Cheers
>>>>>>>>>>>> Paul
>>>>>>>>>>>> On 5-Jul-07, at 4:56 PM, Stephen Woodbridge wrote:
>>>>>>>>>>>>> Steve,
>>>>>>>>>>>>> http://imaptools.com/maps/compare-maps2.php?loc=2&ll=41.85 
>>>>>>>>>>>>> +-87.65&address=&city=&state=&zipcode=&country=&asrv=1&amf=%2Fu% 
>>>>>>>>>>>>>
>>>>>>>>>>>>>  2Fdata%2Fmaps%2Fgoogle-aa2.map&msa=mapserv-4.10&bsrv=1&bmf=%2Fu% 
>>>>>>>>>>>>>
>>>>>>>>>>>>>  2Fdata%2Fmaps%2Fgoogle-agg.map&msb=mapserv-4.99&submit=Show
>>>>>>>>>>>>> Here is a side by side comparison.
>>>>>>>>>>>>> google-aa2 is using "PNG8" google-agg is using "agg/png24"
>>>>>>>>>>>>> OUTPUTFORMAT NAME "agg/png24" MIMETYPE "image/png; 
>>>>>>>>>>>>> mode=24bit" DRIVER "AGG/PNG" EXTENSION "png" IMAGEMODE "RGB" 
>>>>>>>>>>>>> FORMATOPTION "PALETTE_FORCE=TRUE" FORMATOPTION 
>>>>>>>>>>>>> "PALETTE=/u/data/maps/palette-google-agg.txt" END
>>>>>>>>>>>>> ONE of the differences is mapserver-4.10 vs mapserv-4.99 and 
>>>>>>>>>>>>> the
>>>>>>>>>>>>>  fact that 4.99 has broken support for:
>>>>>>>>>>>>> OUTPUTFORMAT NAME PNG8 DRIVER "GD/PNG" EXTENSION "png" 
>>>>>>>>>>>>> MIMETYPE "image/png" IMAGEMODE RGBA TRANSPARENT OFF 
>>>>>>>>>>>>> FORMATOPTION "QUANTIZE_FORCE=ON" FORMATOPTION 
>>>>>>>>>>>>> "QUANTIZE_DITHER=OFF"
>>>>>>>>>>>>> FORMATOPTION "QUANTIZE_COLORS=256" END
>>>>>>>>>>>>> as none of the roads render.
>>>>>>>>>>>>> -Steve
>>>>>>>>>>>>> Steve Lime wrote:
>>>>>>>>>>>>>> Would be nice to have a non-tiled, side-by-side browser to do
>>>>>>>>>>>>>> the comparison with... ;-) It doesn't look to me like 
>>>>>>>>>>>>>> identical
>>>>>>>>>>>>>>  mapfiles. For example, I'm looking at Chicago and there look
>>>>>>>>>>>>>> to be some differences in scale settings. For example, the
>>>>>>>>>>>>>> shape of Lake Michigan changes dramatically, see: 
>>>>>>>>>>>>>> http://maps.dnr.state.mn.us/~stlime/chicago_gd.gif 
>>>>>>>>>>>>>> http://maps.dnr.state.mn.us/~stlime/chicago_agg.gif  I'll wait
>>>>>>>>>>>>>> on other comments until that can be confirmed. Steve
>>>>>>>>>>>>>>>>> On 7/4/2007 at 10:47 AM, in message <468BC11E. 
>>>>>>>>>>>>>>>>> 2050101 at swoodbridge.com>, Stephen
>>>>>>>>>>>>>> Woodbridge <woodbri at SWOODBRIDGE.COM> wrote:
>>>>>>>>>>>>>>> Hi Zak,
>>>>>>>>>>>>>>> Thank you and the others for all the responses. I got it 
>>>>>>>>>>>>>>> working this morning:
>>>>>>>>>>>>>>> http://imaptools.com/agg-test.html I have a few questions and
>>>>>>>>>>>>>>>  observations:
>>>>>>>>>>>>>>> The OL app above has two base layers. Both use the same 
>>>>>>>>>>>>>>> mapfile, except one supports AGG and is using 5.0 and the
>>>>>>>>>>>>>>> other is using 4.10.
>>>>>>>>>>>>>>> 1) Notice the white lines in the water boarding some of 
>>>>>>>>>>>>>>> the polygons. What is causing that? How do you get rid of 
>>>>>>>>>>>>>>> these?
>>>>>>>>>>>>>>> 2) If you switch between 4.10 and 5.0 AGG base layers 
>>>>>>>>>>>>>>> notice that the road widths change. What is causing this? 
>>>>>>>>>>>>>>> I assume this is the same issue as the polygons above.
>>>>>>>>>>>>>>> 3) If you zoom in to 15K scale of closer so street names are
>>>>>>>>>>>>>>>  displayed the text looks really bad on text ALIGN FOLLOW 
>>>>>>>>>>>>>>> labels. And the text is much bolder and blacker than the 4.10
>>>>>>>>>>>>>>>  example.
>>>>>>>>>>>>>>> more below ...
>>>>>>>>>>>>>>> Zak James wrote:
>>>>>>>>>>>>>>>> Steve,
>>>>>>>>>>>>>>>> In our testing, the AGG renderer is about 10% faster than
>>>>>>>>>>>>>>>> GD over a variety of conditions. One caveat is that the 
>>>>>>>>>>>>>>>> sub-pixel positioning of vertices (which greatly improves
>>>>>>>>>>>>>>>> the appearance of features) can cause far longer rendering
>>>>>>>>>>>>>>>> times if suitable overview data aren't available for a
>>>>>>>>>>>>>>>> given scale. We discussed but did not implement strategies
>>>>>>>>>>>>>>>> for mitigating this problem.
>>>>>>>>>>>>>>> I think that discussion should get added to the RFC. If I 
>>>>>>>>>>>>>>> wanted to provide my own overview data what are we talking 
>>>>>>>>>>>>>>> about. Just having generalized data? Any rule of thumb on
>>>>>>>>>>>>>>> when you need to provide this?
>>>>>>>>>>>>>>>> Another issue is that the antialiasing tends to cause
>>>>>>>>>>>>>>>> larger image file sizes.
>>>>>>>>>>>>>>> There really is not much that you can do about this. It will
>>>>>>>>>>>>>>>  impact on bandwidth and tile repository sizes.
>>>>>>>>>>>>>>> -Steve
>>>>>>>>>>>>>>>> zak
>>>>>>>>>>>>>>>> On 7/3/07, Stephen Woodbridge <woodbri at swoodbridge.com> 
>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>> Paul, Steve,
>>>>>>>>>>>>>>>>> A few questions:
>>>>>>>>>>>>>>>>> 1) could one of you do a short post on what if anything 
>>>>>>>>>>>>>>>>> needs to be done to use AGG other than install the libs
>>>>>>>>>>>>>>>>> and select some ./ configure options.
>>>>>>>>>>>>>>>>> 2) Any sense on how this compares speed wise to the GD 
>>>>>>>>>>>>>>>>> implementation.
>>>>>>>>>>>>>>>>> 3) is what is in the trunk all that 5.0 will see or is 
>>>>>>>>>>>>>>>>> there some additional work that is planed to be 
>>>>>>>>>>>>>>>>> implemented.
>>>>>>>>>>>>>>>>> I would like to give it a try.
>>>>>>>>>>>>>>>>> -Steve W
>>>>>>>>>>>>>>>>> Paul Spencer wrote:
>>>>>>>>>>>>>>>>>> The other thing that I am very keen to have is text 
>>>>>>>>>>>>>>>>>> rendered/ placed using AGG.  Not sure if it will be
>>>>>>>>>>>>>>>>>> done for 5.0 though.
>>>>>>>>>>>>>>>>>> Cheers
>>>>>>>>>>>>>>>>>> Paul
>>>>>>>>>>>>>>>>>> On 3-Jul-07, at 1:25 PM, Steve Lime wrote:
>>>>>>>>>>>>>>>>>>> Hi Tom: AGG support is in the codebase for 5.0. I
>>>>>>>>>>>>>>>>>>> still owe an RFC to explain what was done although
>>>>>>>>>>>>>>>>>>> the addition of AGG doesn't affect any other portions
>>>>>>>>>>>>>>>>>>> of MapServer. It's a big user feature though. I
>>>>>>>>>>>>>>>>>>> recently got a big time sink off my plate and will
>>>>>>>>>>>>>>>>>>> work that up ASAP.
>>>>>>>>>>>>>>>>>>> The support is relatively complete. The guys from DM
>>>>>>>>>>>>>>>>>>>  Solutions can probably comment further as they've
>>>>>>>>>>>>>>>>>>> been using it the most. The AGG vs. GD images DM has 
>>>>>>>>>>>>>>>>>>> supplied are very nice. The quality difference is 
>>>>>>>>>>>>>>>>>>> noticeable with roads in
>>>>>>>>>>>>>>>>> particular.
>>>>>>>>>>>>>>>>>>> The only missing capability that I am aware of has to
>>>>>>>>>>>>>>>>>>>  do with PIXMAP symbols that contain an alpha
>>>>>>>>>>>>>>>>>>> channel. There is a fundamental difference in how AGG
>>>>>>>>>>>>>>>>>>> and GD handle alpha blending (GD is flat out
>>>>>>>>>>>>>>>>>>> backwards).  We use GD to manage the pixel buffer
>>>>>>>>>>>>>>>>>>> that AGG is rendering into so that becomes a problem.
>>>>>>>>>>>>>>>>>>> I'll go into options in the RFC.
>>>>>>>>>>>>>>>>>>> Anyway, other than that the support seems to be
>>>>>>>>>>>>>>>>>>> working nicely is worth trying.
>>>>>>>>>>>>>>>>>>> Steve
>>>>>>>>>>>>>>>>>>>>>> On 7/1/2007 at 10:08 PM, in message
>>>>>>>>>>>>>>>>>>> <7b5b710d0707012008i59c41e8bq8e0ef4d8022f40f8 at mail.gmail.com>, 
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>  T om
>>>>>>>>>>>>>>>>> Beard
>>>>>>>>>>>>>>>>>>> <tom at PROJECTX.CO.NZ> wrote:
>>>>>>>>>>>>>>>>>>>> Hi there,
>>>>>>>>>>>>>>>>>>>> This is my first time posting here, and I hope this
>>>>>>>>>>>>>>>>>>>>  is the right forum to ask this question.
>>>>>>>>>>>>>>>>>>>> I was wondering what the status of AGG support was 
>>>>>>>>>>>>>>>>>>>> for the 5.0 release. On searching the archives, the
>>>>>>>>>>>>>>>>>>>>  most recent reference I could find was
>>>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>>>>>> minutes from the May 22 IRC meeting that said that 
>>>>>>>>>>>>>>>>>>>> there would be
>>>>>>>>>>>>>>>>> an RFC
>>>>>>>>>>>>>>>>>>>> freeze on June 15, and that an RFC for AGG was 
>>>>>>>>>>>>>>>>>>>> "forthcoming". Did AGG support make it into that 
>>>>>>>>>>>>>>>>>>>> freeze? Is it listed somewhere online?
>>>>>>>>>>>>>>>>>>>> I'd also be interested to know if there is a
>>>>>>>>>>>>>>>>>>>> version currently in Subversion that includes AGG
>>>>>>>>>>>>>>>>>>>> sub-pixel rendering and that works well enough to
>>>>>>>>>>>>>>>>>>>> have a go at compiling on Windows.
>>>>>>>>>>>>>>>>>>>> Regards, Tom Beard
>>>>>>>>>>>>>>>>>> +---------------------------------------------------------------- 
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>  -+ |Paul Spencer pspencer at dmsolutions.ca    | 
>>>>>>>>>>>>>>>>>> +---------------------------------------------------------------- 
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>  -+ |Chief Technology Officer | |DM Solutions Group Inc
>>>>>>>>>>>>>>>>>> http:// www.dmsolutions.ca/ | 
>>>>>>>>>>>>>>>>>> +---------------------------------------------------------------- 
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>  -+
>>>>>>>>>>>> +-----------------------------------------------------------------+ 
>>>>>>>>>>>>
>>>>>>>>>>>>  |Paul Spencer                          pspencer at dmsolutions.ca 
>>>>>>>>>>>> | 
>>>>>>>>>>>> +-----------------------------------------------------------------+ 
>>>>>>>>>>>>
>>>>>>>>>>>>  |Chief Technology Officer
>>>>>>>>>>>> | |DM Solutions Group Inc                
>>>>>>>>>>>> http://www.dmsolutions.ca/ 
>>>>>>>>>>>> | 
>>>>>>>>>>>> +-----------------------------------------------------------------+ 
>>>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> +-----------------------------------------------------------------+
>>>>>>>>> |Paul Spencer                          pspencer at dmsolutions.ca    |
>>>>>>>>> +-----------------------------------------------------------------+
>>>>>>>>> |Chief Technology Officer                                         |
>>>>>>>>> |DM Solutions Group Inc                http://www.dmsolutions.ca/ |
>>>>>>>>> +-----------------------------------------------------------------+
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> ------------------------------------------------------------------------ 
>>>>>
>>>>>
>>>>
>>>
>>>
>> 
>> 
> 



More information about the mapserver-dev mailing list