Hi, I'm experiencing an annoying issue with the vector tile extension (2.17.1 and 2.18-SNAPSHOT)
When we ask to reproject from 3857 to 4326 quite often (also due to the tile buffer) we get an error as shown below, and as result some returned geometries are not valid/cutted. ------------- 06 Jun 19:50:36 ERROR [geoserver.ows] - org.geoserver.platform.ServiceException: Internal error at org.geoserver.wms.GetMap.run(GetMap.java:134) at org.geoserver.wms.DefaultWebMapService.getMap(DefaultWebMapService.java:246) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ... at org.geoserver.ows.Dispatcher.execute(Dispatcher.java:877) at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:265) at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:177) at org.geoserver.gwc.GWC.dispatchOwsRequest(GWC.java:1369) at org.geoserver.gwc.layer.GeoServerTileLayer.dispatchGetMap(GeoServerTileLayer.java:706) at org.geoserver.gwc.layer.GeoServerTileLayer.getMetatilingReponse(GeoServerTileLayer.java:651) at org.geoserver.gwc.layer.GeoServerTileLayer.getTile(GeoServerTileLayer.java:592) at org.geowebcache.util.ResponseUtils.writeTile(ResponseUtils.java:100) ... Caused by: org.geotools.data.DataSourceException: Had troubles handling filter reprojection... at org.vfny.geoserver.global.GeoServerFeatureSource.reprojectFilter(GeoServerFeatureSource.java:485) at org.vfny.geoserver.global.GeoServerFeatureSource.getFeatures(GeoServerFeatureSource.java:394) at org.vfny.geoserver.global.GeoServerFeatureSource.getFeatures(GeoServerFeatureSource.java:71) at org.geoserver.wms.vector.VectorTileMapOutputFormat.produceMap(VectorTileMapOutputFormat.java:132) at org.geoserver.wms.GetMap.executeInternal(GetMap.java:749) at org.geoserver.wms.GetMap.run(GetMap.java:300) at org.geoserver.wms.GetMap.run(GetMap.java:123) ... 141 more Caused by: java.lang.RuntimeException: org.geotools.referencing.operation.projection.ProjectionException: Latitude 90°00.0'N is too close to a pole. at org.geotools.filter.spatial.ReprojectingFilterVisitor.visit(ReprojectingFilterVisitor.java:132) at org.geotools.filter.spatial.BBOXImpl.accept(BBOXImpl.java:143) at org.vfny.geoserver.global.GeoServerFeatureSource.reprojectFilter(GeoServerFeatureSource.java:478) ... 147 more Caused by: org.geotools.referencing.operation.projection.ProjectionException: Latitude 90°00.0'N is too close to a pole. at org.geotools.referencing.operation.projection.Mercator$Spherical.transformNormalized(Mercator.java:197) at org.geotools.referencing.operation.projection.MapProjection.transform(MapProjection.java:894) at org.geotools.referencing.operation.projection.MapProjection.transform(MapProjection.java:940) at org.geotools.referencing.operation.transform.AbstractMathTransform.transform(AbstractMathTransform.java:215) at org.geotools.referencing.CRS.transform(CRS.java:1397) at org.geotools.referencing.CRS.transform(CRS.java:1477) at org.geotools.geometry.jts.ReferencedEnvelope.transform(ReferencedEnvelope.java:624) at org.geotools.geometry.jts.ReferencedEnvelope.transform(ReferencedEnvelope.java:567) at org.geotools.filter.spatial.ReprojectingFilterVisitor.visit(ReprojectingFilterVisitor.java:130) ... 149 more ------------- Followed by various: ---- Caused by: java.lang.IllegalStateException: Expected: RenderedImageMap, got null at org.geoserver.gwc.layer.GeoServerTileLayer.dispatchGetMap(GeoServerTileLayer.java:709) at org.geoserver.gwc.layer.GeoServerTileLayer.getMetatilingReponse(GeoServerTileLayer.java:651) ... 111 more ---- I see that the problem is originated here: https://github.com/geoserver/geoserver/blob/ad1c04e90e3556db398fb2bcdc65a66d3410da03/src/extension/vectortiles/src/main/java/org/geotools/renderer/lite/VectorMapRenderUtils.java#L235 Where we calculate the resulting native BBOX from the requested one. if the request is in 4326 a bbox of +/-90 degrees is perfectly acceptable but when we try to obtain the native one we get an error since the 3857 does not support latitudes over or above 85 degrees (expressed in meters). I'd like to propose a solution to this but I'm also not sure which way should I follow. I'm tempted to 1. create the maximum extent for the source srs 2. translate that to the declared srs (maxDeclaredBBOX) then 3. if the request exceeds that maximum BBOX 4. log a worn and cut the request query filter BBOX with the obtained maxDeclaredBBOX. This may solve but seems quite complex. Since this does not happen in the PNG format I'm wondering how you managed to solve this problem? Can you point me to the right piece of code? Can I open a ticket for that? Thanks, Carlo -- Mr. Carlo Cancellieri *skype*: ccancellieri *Twitter*: @cancellieric *LinkedIn*: http://it.linkedin.com/in/ccancellieri/
_______________________________________________ Geoserver-users mailing list Please make sure you read the following two resources before posting to this list: - Earning your support instead of buying it, but Ian Turton: http://www.ianturton.com/talks/foss4g.html#/ - The GeoServer user list posting guidelines: http://geoserver.org/comm/userlist-guidelines.html If you want to request a feature or an improvement, also see this: https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer [email protected] https://lists.sourceforge.net/lists/listinfo/geoserver-users
