[OpenLayers-Dev] Developement of an external vector symbol
barbara.philippot at camptocamp.com
Fri Oct 26 11:32:51 EDT 2007
Thanks for your advice Cameron!
I researched available tools to transform SVG into VML. I found that
only one project was usable without too many modifications : Mark
Finkle's opensource project : Implementation of simple static SVG
rendering in Internet Explorer using VML, which is under the terms of
After a certain number of modifications (symbol and viewbox
management, minor corrections), I was able to transform SVG symbols into
VML groups. Some problems are still there but most of them are well
transformed. So, I inserted the needed functions into Openlayers
codebase. For the moment, they are independant functions put into VML.js
(one main function and 4 linked functions).
We need to put these functions elsewhere : methods still in VML.js,
in Util.js?, or integrate them into a new class and a new file?
Since VML shapetype elements can't be as complex as SVG symbol elements,
I transformed SVG symbols into VML groups with a visibility put to
hidden. The specified group matching the point to draw is then cloned,
made visible and put at the right place.
So when creating a new vector layer, we can now specify an option with
the URL of a single SVG symbols library which will be loaded in the
rendererRoot node. Symbols of this library can be used on Firefox
VML). It slows a little the browser down but loading time is satisfactory.
For the moment, we have used this catalogue :
but people can add their own symbols or symbols from the Open Clip Art
library provided that SVG symbols are put inside a <symbol> element with
the correct viewBox attribute associated.
Cameron Shorter a écrit :
> This sounds like a great initiative and I'd be surprised if there
> isn't already a number of projects which transform between SVG and VML.
> I know that there has been work converting GML to SVG, and hence there
> shouldn't be much work transforming GeoRSS to SVG.
> So I suggest:
> 1. Before you do any development, research available tools that you
> can use.
> 2. Create one vector library (either SVG or VML) and use a translation
> tool to automatically convert from one to the other.
> 3. Precompile the alternative library. Ie, don't convert SVG to VML on
> 3. I suspect that SVG would be a better format to support than VML. I
> believe SVG is used by a number of other projects, eg the Linux Icon
> 4. Search for existing icon libraries and consider extending the
> existing icon libraries rather than creating a new project. Maybe make
> a geographic version of the library.
> 5. Think bigger than just OpenLayers. You start the free icon library
> used by all Open Source GIS projects. It might be a candidate project
> for: http://wiki.osgeo.org/index.php/OSGeo_Labs
> (Although you may want to seed your project within Openlayers)
> Barbara Philippot wrote:
>> Ian Mayo a écrit :
>>> I'm afraid I can't offer an opinion on your languages challenge. It
>>> would be great if there was a pre-existing file-format for vector
>>> symbols, then we just specify filenames rather than hard-code the
>>> vectored shapes.
>> Yes, this is why we are trying to do. But people would have to specify
>> two filenames (one in SVG, the other in VML) to replace the pre-existing
>> symbol catalogue files and it's not still the ideal solution but perhaps
>> it's the only one.
>>> I'm currenlty working on provision of per-entry icons (images) for
>>> georss feeds. . I've made good progress, but may have to pause my
>>> efforts for the next 7 days, see my demo at: . Had you considered
>>> using the symbols on a per-entry fashion in a georss feed? I suspect
>>> it's fortunate I've got a self-induced development pause: it would
>>> seem to be worth offering per-entry symbols as well as icons.
>>> Appreciate your thoughts/opinions.
>> Well, I hadn't considered using symbols in a georss feed and I don't
>> know well Georss format. For the moment, symbols are associated with
>> points geometry with a style.use="symbol" in the same way as images were
>> associated with style.externalGraphic. So, I haven't looked in detail to
>> the way you attach icons to GeoRss nodes but it seems that you would be
>> able to use SVG and VML symbols as well as images.
>> I hope to make progress before your development pause ends :-)
>>> 1. http://trac.openlayers.org/ticket/1073
>> Dev mailing list
>> Dev at openlayers.org
More information about the Dev