[Geoserver-users] Oracle Spatial with 4 dimensions

Hi,

I´m using Oracle Spatial with GeoServer, but my geometries are 4 dimensions, and this is generated error in GeoServer. Why? How can resolve?

See the log:

2009-02-05 06:45:48,514 ERROR [geotools.rendering] - Dimension D:4 and L:4 denote Coordiantes of 8 ordinates. This cannot be resolved withan ordinate array of length 4
java.lang.IllegalArgumentException: Dimension D:4 and L:4 denote Coordiantes of 8 ordinates. This cannot be resolved withan ordinate array of length 4
at org.geotools.data.oracle.sdo.SDO.coordinates(SDO.java:2075)
at org.geotools.data.oracle.sdo.SDO.create(SDO.java:2296)
at org.geotools.data.oracle.sdo.GeometryConverter.asGeometry(GeometryConverter.java:123)
at org.geotools.data.oracle.OracleDialect.readGeometry(OracleDialect.java:300)
at org.geotools.data.oracle.OracleDialect.readGeometry(OracleDialect.java:281)
at org.geotools.data.oracle.OracleDialect.decodeGeometryValue(OracleDialect.java:257)
at org.geotools.jdbc.JDBCFeatureReader.next(JDBCFeatureReader.java:301)
at org.geotools.jdbc.JDBCFeatureReader.next(JDBCFeatureReader.java:79)
at org.geotools.data.store.ContentFeatureCollection$WrappingFeatureIterator.next(ContentFeatureCollection.java:206)
at org.geotools.data.store.ContentFeatureCollection$WrappingFeatureIterator.next(ContentFeatureCollection.java:186)
at org.geotools.data.crs.ForceCoordinateSystemIterator.next(ForceCoordinateSystemIterator.java:123)
at org.geotools.data.crs.ForceCoordinateSystemIterator.next(ForceCoordinateSystemIterator.java:64)
at org.geotools.renderer.lite.StreamingRenderer.processStylers(StreamingRenderer.java:1607)
at org.geotools.renderer.lite.StreamingRenderer.paint(StreamingRenderer.java:642)
at org.geotools.renderer.shape.ShapefileRenderer.renderWithStreamingRenderer(ShapefileRenderer.java:1472)
at org.geotools.renderer.shape.ShapefileRenderer.paint(ShapefileRenderer.java:1341)
at org.geotools.renderer.shape.ShapefileRenderer.paint(ShapefileRenderer.java:265)
at org.vfny.geoserver.wms.responses.DefaultRasterMapProducer.produceMap(DefaultRasterMapProducer.java:347)
at org.vfny.geoserver.wms.responses.GetMapResponse.execute(GetMapResponse.java:416)
at org.geoserver.ows.adapters.ResponseAdapter.getMimeType(ResponseAdapter.java:48)
at org.geoserver.ows.Dispatcher.response(Dispatcher.java:698)
at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:215)
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:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264)
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:274)
at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:178)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:229)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148)
at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:73)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.geoserver.filters.ReverseProxyFilter.doFilter(ReverseProxyFilter.java:163)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:41)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:828)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)

Best Regards,

Fernando Quadro
http://www.fernandoquadro.com.br
fsquadro@anonymised.com


Veja mapas e encontre as melhores rotas para fugir do trânsito com o Live Search Maps! Experimente já!

Fernando Quadro ha scritto:

Hi,

I´m using Oracle Spatial with GeoServer, but my geometries are 4 dimensions, and this is generated error in GeoServer. Why? How can resolve?

GeoServer supports only 2 dimensional geometries, there is no way
around that other than fixing the datastores and the rendering
subsystem to deal with 3 or more dimensions.

Not rocked science, but quite an extensive change is required,
and after that, a long period of testing, since it's virtually
impossible to spot every place in which the 2d assumption is made.

It is something that requires either sponsoring or someone
ready to spend significant time making up the patches and
submitting them to the community.

Cheers
Andrea

--
Andrea Aime
OpenGeo - http://opengeo.org
Expert service straight from the developers.