I'm using Geoserver 2.8.1 and OpenLayers 2 to visualize cartographies, the geoserver documentation indicates I can use extra symbols in my SLD, the "shape://oarrow" for example :

       <CssParameter name="fill">#000000</CssParameter>

But when I try to load this kind of style, I get this error from OpenLayers.js:

Uncaught Error: shape://oarrow is not a valid symbol name

What am I missing here ?

1 Answer 1


The SLD standard says that renderers must support 6 well known names (circle, square, cross, x, triangle and star) any other names are extensions to the standard and may or may not be supported by a renderer.

So OpenLayers is correct when it says that it doesn't know what the symbol is but it is incorrect when it throws an error. The standard requires (p40 SLD1.0) that the render skip over unknown (graphics and) marks and draw the next graphic item, and if all else fails draw a small gray square (the default mark).

  • Thank you for your answer. Is there any way to make OpenLayers to "understand" the SLD extensions normally supported by Geoserver ?
    – Kef
    Mar 29, 2016 at 10:20
  • You would need to write javascript for this, as OpenLayers-3 is now in development I doubt any one will look at adding new features to OpenLayers-2 but check with the developers.
    – Ian Turton
    Mar 29, 2016 at 10:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.