To my knowledge, the CSS plugin provides the only alternative to SLD for
styling languages in GeoServer. There are a few GUI SLD editors out there -
OpenGeo's Styler is web-based, udig includes one, atlas styler is a
standalone style editing tool, I believe qgis has a plugin available for
generating SLD. You could investigate these; OpenGeo's Styler can save
straight to GeoServer and Atlas Styler is working on similar functionality.
Using CSS for "big" styles is interesting to me, while I've been working on
CSS for quite some time I don't usually write complex styles with it because
I am not usually styling. I hope that it would work quite well for large
styles, but I am also sure if you start using it in anger you'll find some
bugs. I'm interested in fixing those bugs if they're reported, but I can't
make any guarantees about quick resolution. However, it's worth noting that
the CSS plugin generates normal SLD files which can be transferred to
another datadir and used without the CSS plugin (for example, you could have
a 'staging server' where the CSS files are stored, and only post known-good
SLD files to your production server.)
Another option, if you have some programming skills, would be to work on a
tool of your own for maintaining your stylesheets. Perhaps you could model
it after http://wiki.openstreetmap.org/wiki/Spreadnik , or simply base it on
your own needs. In mapnik-land there is also a common pattern of using DTD
(http://en.wikipedia.org/wiki/Document_Type_Definition) to define constants
and break large styles up into multiple files. I don't know how well this
sort of thing would work with GeoServer, but you can see it in action in the
Open MapQuest styles (https://github.com/MapQuest/MapQuest-Mapnik-Style).
I hope now you have some ideas to investigate :)
--
David Winslow
OpenGeo - http://opengeo.org/
On Thu, Dec 30, 2010 at 1:52 PM, Emilio Facundo Cabrera <
[email protected]> wrote:
> Hi David,
>
> Thanks for your fast response. I'm building a system over 2.0.2 for
> stability reasons but I guess that I can try updating to 2.0.3.
>
> Do you have any recommendation in order to handle big sld styles?
>
> I guess that css is a good option in order to create a maintainable style
> source.
>
> What do you think?
>
> Regards and Happy new year!
>
> 2010/12/30 David Winslow <[email protected]>
>
>> I would not expect compatibility issues between 2.0.3 and 2.0.2, but it is
>> definitely possible. I'll try look into this error sometime soon.
>> Unfortunately, we don't maintain 'release' builds of community modules such
>> as the CSS module, but in the meantime you could try using the latest build
>> of the css module with the latest build of 2.0.x (see
>> http://gridlock.openplans.org/geoserver/2.0.x/)
>>
>> It should also be possible for you to check out the sources from the 2.0.2
>> tag and build with maven, if you really need the 2.0.2 release.
>>
>> --
>> David Winslow
>> OpenGeo - http://opengeo.org/
>>
>>
>> On Thu, Dec 30, 2010 at 11:24 AM, Emilio Facundo Cabrera <
>> [email protected]> wrote:
>>
>>> Hi David,
>>>
>>> I use GeoServer 2.0.2 and I have installed the css extension version
>>> 2.0.3 from here
>>> http://gridlock.openplans.org/geoserver/2.0.x/community-latest/ .
>>>
>>> is the problem the css version? where can I find the last version for
>>> GeoServer 2.0.2?
>>>
>>> Regards,
>>> Emilio
>>>
>>> 2010/12/30 David Winslow <[email protected]>
>>>
>>> A NoSuchMethodException usually indicates that you are mixing and
>>>> matching library versions. Could you double-check that the extension
>>>> you installed is of the same version as the GeoServer you installed it
>>>> in?
>>>>
>>>> --
>>>> David Winslow
>>>> OpenGeo - http://opengeo.org/
>>>>
>>>> On Wednesday, December 29, 2010, Emilio Facundo Cabrera
>>>> <[email protected]> wrote:
>>>> > Hi people,
>>>> > I want to work with css extension but I can't figure out where is the
>>>> problem ... can anyone give me a hand with this?
>>>> >
>>>> >
>>>> > When I click on "Map CSS Demo <
>>>> http://mapear:8080/geoserver/web/?wicket:bookmarkablePage=:org.geoserver.community.css.web.CssDemoPage>"
>>>> menu element I get this error:
>>>> >
>>>> >
>>>> > org.apache.wicket.WicketRuntimeException: Can't instantiate page using
>>>> > constructor public org.geoserver.community.css.web.CssDemoPage()
>>>> > at
>>>> >
>>>> org.apache.wicket.session.DefaultPageFactory.createPage(DefaultPageFactory.java:206)
>>>> >
>>>> > at
>>>> >
>>>> org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:57)
>>>> >
>>>> > at
>>>> >
>>>> org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.newPage(BookmarkablePageRequestTarget.java:272)
>>>> >
>>>> > at
>>>> >
>>>> org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.getPage(BookmarkablePageRequestTarget.java:293)
>>>> >
>>>> > at
>>>> >
>>>> org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.processEvents(BookmarkablePageRequestTarget.java:210)
>>>> >
>>>> > at
>>>> >
>>>> org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:91)
>>>> >
>>>> > at
>>>> >
>>>> org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1239)
>>>> >
>>>> > at org.apache.wicket.RequestCycle.step(RequestCycle.java:1316)
>>>> > at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1418)
>>>> > at org.apache.wicket.RequestCycle.request(RequestCycle.java:532)
>>>> > at
>>>> >
>>>> org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:356)
>>>> >
>>>> > at
>>>> >
>>>> org.apache.wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:124)
>>>> >
>>>> > at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
>>>> > at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>>>> > at
>>>> >
>>>> org.springframework.web.servlet.mvc.ServletWrappingController.handleRequestInternal(ServletWrappingController.java:158)
>>>> >
>>>> > at
>>>> >
>>>> org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
>>>> >
>>>> > at
>>>> >
>>>> org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
>>>> >
>>>> > at
>>>> >
>>>> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
>>>> >
>>>> > at
>>>> >
>>>> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809)
>>>> >
>>>> > at
>>>> >
>>>> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
>>>> >
>>>> > at
>>>> >
>>>> org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
>>>> >
>>>> > at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
>>>> > at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>>>> > at
>>>> >
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>>>> >
>>>> > at
>>>> >
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>> >
>>>> > at
>>>> >
>>>> org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
>>>> >
>>>> > at
>>>> >
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>>> >
>>>> > at
>>>> >
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>> >
>>>> > at
>>>> >
>>>> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
>>>> >
>>>> > at
>>>> >
>>>> org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
>>>> >
>>>> > at
>>>> >
>>>> org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
>>>> >
>>>> > at
>>>> >
>>>> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
>>>> >
>>>> > at
>>>> >
>>>> org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:124)
>>>> >
>>>> > at
>>>> >
>>>> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
>>>> >
>>>> > at
>>>> >
>>>> org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
>>>> >
>>>> > at
>>>> >
>>>> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
>>>> >
>>>> > at
>>>> >
>>>> org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
>>>> >
>>>> > at
>>>> >
>>>> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
>>>> >
>>>> > at
>>>> >
>>>> org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
>>>> >
>>>> > at
>>>> >
>>>> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
>>>> >
>>>> > at
>>>> >
>>>> org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
>>>> >
>>>> > at
>>>> >
>>>> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
>>>> >
>>>> > at
>>>> >
>>>> org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
>>>> > at
>>>> >
>>>> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
>>>> >
>>>> > at
>>>> >
>>>> org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
>>>> >
>>>> > at
>>>> >
>>>> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
>>>> >
>>>> > at
>>>> >
>>>> org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
>>>> >
>>>> > at
>>>> >
>>>> org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
>>>> >
>>>> > at
>>>> >
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>>> >
>>>> > at
>>>> >
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>> >
>>>> > at
>>>> org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:73)
>>>> > at
>>>> >
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>>> >
>>>> > at
>>>> >
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>> >
>>>> > at
>>>> >
>>>> org.geoserver.filters.ReverseProxyFilter.doFilter(ReverseProxyFilter.java:183)
>>>> >
>>>> > at
>>>> >
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>>> >
>>>> > at
>>>> >
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>> >
>>>> > at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:41)
>>>> > at
>>>> >
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>>> >
>>>> > at
>>>> >
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>> >
>>>> > at
>>>> >
>>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>>>> >
>>>> > at
>>>> >
>>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>>>> >
>>>> > at
>>>> >
>>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>>>> >
>>>> > at
>>>> >
>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>>>> >
>>>> > at
>>>> >
>>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>>>> >
>>>> > at
>>>> >
>>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
>>>> >
>>>> > at
>>>> >
>>>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
>>>> >
>>>> > at
>>>> >
>>>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
>>>> >
>>>> > at
>>>> >
>>>> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
>>>> > at java.lang.Thread.run(Thread.java:662)
>>>> > Caused by: java.lang.reflect.InvocationTargetException
>>>> > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>>>> > Method)
>>>> > at
>>>> >
>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>>>> >
>>>> > at
>>>> >
>>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
>>>> >
>>>> > at
>>>> java.lang.reflect.Constructor.newInstance(Constructor.java:513)
>>>> > at
>>>> >
>>>> org.apache.wicket.session.DefaultPageFactory.createPage(DefaultPageFactory.java:186)
>>>> >
>>>> > ... 68 more
>>>> > Caused by: java.lang.NoSuchMethodError:
>>>> >
>>>> org.apache.wicket.markup.html.form.Form.add([Lorg/apache/wicket/Component;)Lorg/apache/wicket/MarkupContainer;
>>>> >
>>>> > at
>>>> >
>>>> org.geoserver.community.css.web.CssDemoPage$$anon$7.<init>(CssDemoPage.scala:277)
>>>> >
>>>> > at
>>>> >
>>>> org.geoserver.community.css.web.CssDemoPage.<init>(CssDemoPage.scala:266)
>>>> >
>>>> > at
>>>> >
>>>> org.geoserver.community.css.web.CssDemoPage.<init>(CssDemoPage.scala:112)
>>>> >
>>>> > ... 73 more
>>>> > Any idea?
>>>> > Regards and Happy new year
>>>> >
>>>>
>>>
>>>
>>
>
------------------------------------------------------------------------------
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and,
should the need arise, upgrade to a full multi-node Oracle RAC database
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
Geoserver-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-users