[mapserver-dev] Canvas support for MapServer

Jan Hartmann j.l.h.hartmann at uva.nl
Tue Jan 27 10:52:08 EST 2009


Perhaps. I still feel more at ease with JavaScript, however goofy, than 
with SVG/VML. Im not sure what kind of DOM-tree Canvas/Excanvas produce, 
but I would guess it to be easier to access than SVG/VML elements. That 
is one of the things I would like to do: access the map elements within 
the Canvas element *after* it has been loaded from a MapServer server.



Dan Little wrote:
> I think there is some problems with the Canvas implementations across the different browsers.  I've actually done quite a bit of work using the Canvas and the exCanvas extension from Google.  While exCanvas SAYS it is a 100% implementation for IE there tends to be a number of quirks when it comes to actually placing objects in a drawing stack, animating them, or simply clearing the canvas at a predictable point.
>
> Also, I think it would be much more to the benefit to simply have a VML output.  A little bit of browser sniffing is easy to do with any JS application (or even some server side scripting) and you'd be outputting either SVG or VML in that browser's native preferred format.  No goofy javascript library required.
>
>
>
> ----- Original Message ----
>   
>> From: Brent Fraser <bfraser at geoanalytic.com>
>> To: Jan Hartmann <j.l.h.hartmann at uva.nl>
>> Cc: mapserver-dev at lists.osgeo.org
>> Sent: Tuesday, January 27, 2009 9:07:32 AM
>> Subject: Re: [mapserver-dev] Canvas support for MapServer
>>
>> Jan,
>>
>> So your thought is to have MapServer generate something like (hacked from the 
>> example on https://developer.mozilla.org/en/Canvas_tutorial/Basic_usage):
>>
>>
>>
>>
>>
>>
>>
>>   
>>
>>
>>
>> Sure, it could be done.  One way is to write another output driver for 
>> Mapserver.  Another is to use some server-side scripting to ingest Mapserver's 
>> SVG and change into JavaScript-canvas code like that above. A performance hit, 
>> but at least it would be on the server side, and it might be a good way to 
>> prototype the Mapserver driver.
>>
>> Brent
>>
>> Jan Hartmann wrote:
>>     
>>> Hi Brent,
>>>
>>> First let me say that Canvas support is just an idea; I think it can be done 
>>>       
>> but whether it is advisable to do so is up to you to decide. I liked the idea 
>> because the Canvas element is supported nowadays by most browsers, unlike SVG 
>> which needs a plugin. It is also much simpler, so it's easier to use for simple 
>> maps, and especially for simple interactive operations like digitizing, or 
>> combining server-side with client-side graphics. That's why I would prefer 
>> Canvas above SVG, let alone the fact that I much prefer to program in native 
>> Javascript above parsing XML. Most of my maps are simple (I would guess that 
>> goes for many people here), so SVG is decidedly overkill. The Canvas HTML 
>> element also fits nicely in the page layout and can be processed easily by 
>> web-editors.
>>     
>>> Your suggestion that Canvas could be implemented at the client side by 
>>>       
>> catching SVG output and transforming it into Canvas directives is certainly 
>> viable. That is also Paul Spencer's view in his reply to my email.  Yet I would 
>> prefer a server-side approach: it's more efficient (no second parsing of SVG 
>> code that had to be generated in the first place), and I think the server-side 
>> code can be easily adapted from the SVG driver. Canvas is a very simple format, 
>> just a few graphic primitives, more like GD than SVG actually.
>>     
>>> Again, I don't know how difficult it would be to add a Canvas outputformat, 
>>>       
>> and whether it fits at all into the MapServer design philosophy. However, when 
>> it could be done, it would give me an a far more easier tool than SVG  to 
>> combine server-side and client-side mapping.
>>     
>>> Jan
>>>
>>> Brent Fraser wrote:
>>>       
>>>> Jan,
>>>>
>>>>  My interest is in building a (or re-purposing an existing) tool for 
>>>>         
>> Cartographic Layout, for printing or rendering a graphics format for easy 
>> viewing (e.g. PDF).  Steve's comments were about using existing Web formats and 
>> syntax to describe the layout, and existing(?) web editors to do the 
>> placement/moving of the layout components.
>>     
>>>>  My (very limited) understanding of the HTML tag is that it's a 
>>>>         
>> "container" recognized by the browser, and vector (and raster) graphics are 
>> rendered into it using client-side JavaScript.  Sort of the JavaScript 
>> equivalent of the SVG format.
>>     
>>>>  It would be possible to add another output format to Mapserver to generate 
>>>>         
>> JavaScript code of canvas rendering methods, but a more elegant approach might 
>> be to write a small(?) JavaScript module to ingest Mapserver's SVG and render 
>> the objects to the canvas.
>>     
>>>>  Are there some specific features of the direct-canvas-output approach not 
>>>>         
>> available in SVG that you need?
>>     
>>>> Brent Fraser
>>>>
>>>>
>>>> Jan Hartmann wrote:
>>>>         
>>>>> Hi folks,
>>>>>
>>>>> A few weeks ago I suggested in a thread about PDF support that Mapserver 
>>>>>           
>> could perhaps be made to support the new "Canvas" tag. There were no reactions 
>> to this, so I don't know if this suggestion is viable/advisable/practicable, or 
>> just downright stupid. Can anyone comment? (from 
>> http://lists.osgeo.org/pipermail/mapserver-dev/2009-January/008055.html)
>>     
>>>>>> I am wondering if MapServer support for the "Canvas" tag could do what 
>>>>>>             
>> Steve suggests in a more simple way. Originally, only Safari, Opera and Firefox 
>> supported this tag to allow (simple) 2D drawing, but recently a surprisingly 
>> simple Javascript interface for IE has become available, translating Canvas 
>> command to native IE VRML commands. It requires just one single script tag in 
>> the web page.
>>     
>>>>>> See the tutorial at the Mozilla site at: 
>>>>>>             
>> https://developer.mozilla.org/en/Canvas_tutorial
>>     
>>>>>> and the IE interface (from the Google stables) at: 
>>>>>>             
>> http://excanvas.sourceforge.net/
>>     
>>>>>> This is something I have long been looking for. The graphics are very 
>>>>>>             
>> simple, so the functionality is nothing like PDF or SVG, but I could imagine 
>> that a driver for MapServer could fulfill many needs. I can use it already by 
>> letting Mapserver generate raw coordinates and catching them with some sort of 
>> Ajax, but a separate driver would be very neat of course.
>>     
>>>>>> How about it?
>>>>>>
>>>>>> Jan
>>>>>>
>>>>>>
>>>>>>             
>>>>> ------------------------------------------------------------------------
>>>>>
>>>>> _______________________________________________
>>>>> mapserver-dev mailing list
>>>>> mapserver-dev at lists.osgeo.org
>>>>> http://lists.osgeo.org/mailman/listinfo/mapserver-dev
>>>>>           
>> _______________________________________________
>> mapserver-dev mailing list
>> mapserver-dev at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/mapserver-dev
>>     
>
>
>
>       
>
>   
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/mapserver-dev/attachments/20090127/8d45725c/attachment.html


More information about the mapserver-dev mailing list