Re: [Geoserver-users] SLD Alternatives I like to use this AtlasStyler to build SLD styles. It has a fairly straight forward user interface and allows you to easily save and import any SLD you create to Geoserver.
http://en.geopublishing.org/AtlasStyler -----Original Message----- From: geoserver-users-requ...@lists.sourceforge.net [mailto:geoserver-users-requ...@lists.sourceforge.net] Sent: Wednesday, May 14, 2014 10:27 AM To: geoserver-users@lists.sourceforge.net Subject: Geoserver-users Digest, Vol 96, Issue 74 Send Geoserver-users mailing list submissions to geoserver-users@lists.sourceforge.net To subscribe or unsubscribe via the World Wide Web, visit https://lists.sourceforge.net/lists/listinfo/geoserver-users or, via email, send a message with subject or body 'help' to geoserver-users-requ...@lists.sourceforge.net You can reach the person managing the list at geoserver-users-ow...@lists.sourceforge.net When replying, please edit your Subject line so it is more specific than "Re: Contents of Geoserver-users digest..." Today's Topics: 1. Re: SLD Alternatives (Simon Hartley) 2. Re: Setting Legend Options DPI with Raster (Morris, Devan (DPH)) ---------------------------------------------------------------------- Message: 1 Date: Wed, 14 May 2014 13:07:36 -0400 From: Simon Hartley <shart...@airdata.co.uk> Subject: Re: [Geoserver-users] SLD Alternatives To: Justin Deoliveira <jdeol...@boundlessgeo.com> Cc: "geoserver-users@lists.sourceforge.net" <geoserver-users@lists.sourceforge.net> Message-ID: <6aed4720540426409658f48f77981ab3063d0a7...@mia-wex-v03.wfs.com> Content-Type: text/plain; charset="utf-8" Thank you, that looks interesting. Simon From: Justin Deoliveira [mailto:jdeol...@boundlessgeo.com] Sent: 14 May 2014 15:35 To: Simon Hartley Cc: geoserver-users@lists.sourceforge.net Subject: Re: [Geoserver-users] SLD Alternatives Hey Simon, If you have some scripting chops you could also look at GeoScript. It has convenient apis for composing styles. For example to compose the well known population style boils down to (in python): style = Fill('#4DFF4D', 0.7).where('PERSONS < 2000000') style += Fill('#FF4D4D',0.7).where('PERSONS BETWEEN 2000000 AND 4000000') style += Fill('#4D4DFF',0.7).where('PERSONS > 4000000') style += Stroke(width=0.2) + Label('STATE_ABBR', 'Times New Roman 14px') writeSLD(style, 'population.sld') I have been able to utilize this technique to compose some fairly complex styles. And coupled with geoserver restconfig it leads to a pretty convenient workflow. Anyways, not for everybody but I thought I would mention it. -Justin On Wed, May 14, 2014 at 7:18 AM, Simon Hartley <shart...@airdata.co.uk<mailto:shart...@airdata.co.uk>> wrote: Hi, Does anyone have any recommendations for easily building and maintaining SLD styles? We?ve tried using the GeoServer CSS extension and were initially happy with it, but we?re going to have to abandon it after major speed issues. I can see links to a Styler project, but it doesn?t seem to have much progress. Is OpenGeo Suite any good for this? Thanks a lot Simon Hartley . *** This communication has been sent from World Fuel Services Corporation or its subsidiaries or its affiliates for the intended recipient only and may contain proprietary, confidential or privileged information. If you are not the intended recipient, any review, disclosure, copying, use, or distribution of the information included in this communication and any attachments is strictly prohibited. If you have received this communication in error, please notify us immediately by replying to this communication and delete the communication, including any attachments, from your computer. Electronic communications sent to or from World Fuel Services Corporation or its subsidiaries or its affiliates may be monitored for quality assurance and compliance purposes.*** -------------- next part -------------- An HTML attachment was scrubbed... ------------------------------ Message: 2 Date: Wed, 14 May 2014 17:26:40 +0000 From: "Morris, Devan (DPH)" <devan.mor...@sfdph.org> Subject: Re: [Geoserver-users] Setting Legend Options DPI with Raster To: Mauro Bartolomeoli <mauro.bartolome...@geo-solutions.it> Cc: "geoserver-users@lists.sourceforge.net" <geoserver-users@lists.sourceforge.net> Message-ID: <a6b2ef17220043d980b659dd0a458...@by2pr09mb046.namprd09.prod.outlook.com> Content-Type: text/plain; charset="utf-8" This is the message I have in the log. 2014-05-14 10:17:08,899 INFO [geoserver.wms] - Request: getServiceInfo 2014-05-14 10:17:09,523 INFO [geoserver.wms] - Request: getMap Time = [] Filter = null Buffer = 0 Format = image/png8 Filters = null SRS = EPSG:900913 Height = 861 Width = 717 Tiled = false Palette = null FeatureVersion = null Styles = [StyleImpl[ name=Heatmap], StyleImpl[ name=Stacker]] Layers = [org.geoserver.wms.MapLayerInfo@8838c736, org.geoserver.wms.MapLayerInfo@8838c736] MaxFeatures = null Crs = PROJCS["WGS84 / Google Mercator", GEOGCS["WGS 84", DATUM["World Geodetic System 1984", SPHEROID["WGS 84", 6378137.0, 298.257223563, AUTHORITY["EPSG","7030"]], AUTHORITY["EPSG","6326"]], PRIMEM["Greenwich", 0.0, AUTHORITY["EPSG","8901"]], UNIT["degree", 0.017453292519943295], AXIS["Longitude", EAST], AXIS["Latitude", NORTH], AUTHORITY["EPSG","4326"]], PROJECTION["Mercator_1SP"], PARAMETER["semi_minor", 6378137.0], PARAMETER["latitude_of_origin", 0.0], PARAMETER["central_meridian", 0.0], PARAMETER["scale_factor", 1.0], PARAMETER["false_easting", 0.0], PARAMETER["false_northing", 0.0], UNIT["m", 1.0], AXIS["x", EAST], AXIS["y", NORTH], AUTHORITY["EPSG","900913"]] Bbox = ReferencedEnvelope[-1.3628036998260634E7 : -1.3624798725541366E7, 4546825.733687567 : 4550714.068606834] Env = {} Angle = 0.0 CQLFilter = null Elevation = [] FeatureId = null StartIndex = null ViewParams = [{TIMED=A}, {TIMED=A}] RemoteOwsType = null RemoteOwsURL = null FormatOptions = {DPI=96} BgColor = java.awt.Color[r=255,g=255,b=255] Transparent = true SldBody = null Sld = null SldVersion = null ValidateSchema = false TilesOrigin = null Exceptions = SE_XML Version = 1.1.1 Request = GetMap Get = true RawKvp = {BBOX=-1.3628036998260634E7,4546825.733687567,-1.3624798725541366E7,4550714.068606834, MAP_RESOLUTION=96, SERVICE=WMS, HEIGHT=861, REQUEST=GetMap, STYLES=Heatmap,Stacker, WIDTH=717, TRANSPARENT=true, VERSION=1.1.1, FORMAT=image/png8, FORMAT_OPTIONS=dpi:96, VIEWPARAMS=timed:A, LAYERS=transbase_v1:vw_geoserver_switrs_col_time,transbase_v1:vw_geoserver_switrs_col_time, SRS=EPSG:900913} BaseUrl = http://transbasesf.org:80/geoserver/ RequestCharset = UTF-8 2014-05-14 10:17:09,804 INFO [geoserver.wms] - Request: getServiceInfo 2014-05-14 10:17:09,804 ERROR [geoserver.ows] - java.lang.IllegalStateException: It is not legal to have a RasterSymbolizer here at org.geoserver.wms.legendgraphic.BufferedImageLegendGraphicBuilder.buildLegendGraphic(BufferedImageLegendGraphicBuilder.java:363) at org.geoserver.wms.legendgraphic.PNGLegendOutputFormat.produceLegendGraphic(PNGLegendOutputFormat.java:40) at org.geoserver.wms.legendgraphic.PNGLegendOutputFormat.produceLegendGraphic(PNGLegendOutputFormat.java:21) at org.geoserver.wms.GetLegendGraphic.run(GetLegendGraphic.java:48) at org.geoserver.wms.DefaultWebMapService.getLegendGraphic(DefaultWebMapService.java:357) at sun.reflect.GeneratedMethodAccessor257.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:319) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.geoserver.kml.WebMapServiceKmlInterceptor.invoke(WebMapServiceKmlInterceptor.java:34) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.geoserver.ows.util.RequestObjectLogger.invoke(RequestObjectLogger.java:54) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) at com.sun.proxy.$Proxy65.getLegendGraphic(Unknown Source) at sun.reflect.GeneratedMethodAccessor242.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.geoserver.ows.Dispatcher.execute(Dispatcher.java:774) at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:272) 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:923) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778) at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:27) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:74) at org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegatingFilter.java:45) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:49) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311) at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:68) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:72) at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:68) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113) at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:72) at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) at org.geoserver.security.filter.GeoServerAnonymousAuthenticationFilter.doFilter(GeoServerAnonymousAuthenticationFilter.java:53) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:68) at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150) at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:72) at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91) at org.geoserver.security.filter.GeoServerBasicAuthenticationFilter.doFilter(GeoServerBasicAuthenticationFilter.java:82) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:68) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) at org.geoserver.security.filter.GeoServerSecurityContextPersistenceFilter$1.doFilter(GeoServerSecurityContextPersistenceFilter.java:52) at org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:72) at org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:91) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173) at org.geoserver.security.GeoServerSecurityFilterChainProxy.doFilter(GeoServerSecurityFilterChainProxy.java:134) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:75) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:48) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:47) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.geoserver.filters.FlushSafeFilter.doFilter(FlushSafeFilter.java:43) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:109) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) From: maurobartolome...@gmail.com [mailto:maurobartolome...@gmail.com] On Behalf Of Mauro Bartolomeoli Sent: Tuesday, May 13, 2014 12:37 AM To: Morris, Devan (DPH) Cc: geoserver-users@lists.sourceforge.net Subject: Re: [Geoserver-users] Setting Legend Options DPI with Raster Hi Devan, can you please send us the full stack trace from the Geoserver log? Mauro 2014-05-12 21:07 GMT+02:00 Morris, Devan (DPH) <devan.mor...@sfdph.org<mailto:devan.mor...@sfdph.org>>: Hey everyone, I?ve already posted this once, trying again to see if anyone has an answer. Is this the best place to post a question like this? I?m having an issue with the legend image for my heat map layers not displaying correctly when I specify a DPI through the LEGEND_OPTIONS. My request: http://transbasesf.org/geoserver/transbase_v1/ows?TRANSPARENT=TRUE&VIEWPARAMS=timed%3AA&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetLegendGraphic&EXCEPTIONS=application%2Fvnd.ogc.se_xml&LAYER=vw_geoserver_switrs_col_time&STYLE=Heatmap&FORMAT=image%2Fpng&LEGEND_OPTIONS=fontName%3AGill%20Sans%20MT%3BfontSize%3A8%3Bdpi%3A660%3BfontAntiAliasing%3Atrue%3B%22 Geoserver?s response: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE ServiceExceptionReport SYSTEM "http://transbasesf.org/geoserver/schemas/wms/1.1.1/WMS_exception_1_1_1.dtd"> <ServiceExceptionReport version="1.1.1"> <ServiceException>java.lang.IllegalStateException: It is not legal to have a RasterSymbolizer here It is not legal to have a RasterSymbolizer here</ServiceException> </ServiceExceptionReport> If I remove DPI from my LEGEND_OPTIONS request Geoserver returns the correct legend icon. Is this a bug or is it just not possible to specify a DPI with a raster layer? Thanks, Devan Devan Morris E: devan.mor...@sfdph.org<mailto:devan.mor...@sfdph.org> ------------------------------------------------------------------------------ "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE Instantly run your Selenium tests across 300+ browser/OS combos. Get unparalleled scalability from the best Selenium testing platform available Simple to use. Nothing to install. Get started now for free." http://p.sf.net/sfu/SauceLabs _______________________________________________ Geoserver-users mailing list Geoserver-users@lists.sourceforge.net<mailto:Geoserver-users@lists.sourceforge.net> https://lists.sourceforge.net/lists/listinfo/geoserver-users -- == Meet us at GEO Business 2014! in London! Visit http://goo.gl/fES3aK for more information. == Dott. Mauro Bartolomeoli @mauro_bart Senior Software Engineer GeoSolutions S.A.S. Via Poggio alle Viti 1187 55054 Massarosa (LU) Italy phone: +39 0584 962313 fax: +39 0584 1660272 http://www.geo-solutions.it http://twitter.com/geosolutions_it ------------------------------------------------------- -------------- next part -------------- An HTML attachment was scrubbed... ------------------------------ ------------------------------------------------------------------------------ "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE Instantly run your Selenium tests across 300+ browser/OS combos. Get unparalleled scalability from the best Selenium testing platform available Simple to use. Nothing to install. Get started now for free." http://p.sf.net/sfu/SauceLabs ------------------------------ _______________________________________________ Geoserver-users mailing list Geoserver-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geoserver-users End of Geoserver-users Digest, Vol 96, Issue 74 *********************************************** ------------------------------------------------------------------------------ "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE Instantly run your Selenium tests across 300+ browser/OS combos. Get unparalleled scalability from the best Selenium testing platform available Simple to use. Nothing to install. Get started now for free." http://p.sf.net/sfu/SauceLabs _______________________________________________ Geoserver-users mailing list Geoserver-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geoserver-users