gvSIG bugs #2248
Error al ejecutar buffer cuando se cambia CRS de la vista
Status: | Closed | % Done: | 0% | |
---|---|---|---|---|
Priority: | Normal | Spent time: | - | |
Assignee: | Ignacio Brodín | |||
Category: | Geoprocess | |||
Target version: | 2.1.0-2219-testing | |||
Severity: | Add-on version: | |||
gvSIG version: | 2.1.0 | Add-on build: | ||
gvSIG build: | 2217 | Add-on resolve version: | ||
Operative System: | Linux | Add-on resolve build: | ||
Keywords: | Proyecto: | |||
Has patch: | No | Hito: | ||
Add-on name: | Unknown |
Description
- se crea una vista por defecto (EPSG:4326)
- se carga un shapefile EPSG:2303 (se adjunta)
- se cambia la proyección de la vista (botón propiedades en el gestor de proyectos)
- Se intenta realizar el buffer pero lanza la siguiente excepción (también se adjunta log)
DEBUG [MapControl Drawer Worker] (BaseTaskStatus.java:191) - Terminated status 13909117228001 execution in 0 ms java.lang.IllegalStateException: Coordinate operation error: +proj=longlat +ellps=WGS84 to +proj=tmerc +lat_0=0.0 +lon_0=-62.999999999999936 +k=0.9996 +x_0=500000.0 +y_0=0.0 +ellps=GRS80 : at org.gvsig.crs.COperation.convert(COperation.java:274) at org.gvsig.fmap.geom.primitive.impl.Envelope2D.convert(Envelope2D.java:76) at org.gvsig.symbology.fmap.mapcontext.rendering.legend.impl.AbstractVectorialLegend.internalDraw(AbstractVectorialLegend.java:383) at org.gvsig.symbology.fmap.mapcontext.rendering.legend.impl.AbstractVectorialLegend.draw(AbstractVectorialLegend.java:336) at org.gvsig.symbology.fmap.mapcontext.rendering.legend.impl.AbstractVectorialLegend.draw(AbstractVectorialLegend.java:143) at org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect.draw(FLyrVect.java:293) at org.gvsig.fmap.mapcontext.impl.DefaultMapContextDrawer$DrawList.drawLayer(DefaultMapContextDrawer.java:539) at org.gvsig.fmap.mapcontext.impl.DefaultMapContextDrawer$DrawList.draw(DefaultMapContextDrawer.java:520) at org.gvsig.fmap.mapcontext.impl.DefaultMapContextDrawer$DrawList.drawLayers(DefaultMapContextDrawer.java:459) at org.gvsig.fmap.mapcontext.impl.DefaultMapContextDrawer.draw(DefaultMapContextDrawer.java:137) at org.gvsig.fmap.mapcontext.MapContext.draw(MapContext.java:1093) at org.gvsig.fmap.mapcontrol.MapControl$PaintingRequest.paint(MapControl.java:1332) at org.gvsig.fmap.mapcontrol.MapControl$Drawer$Worker.run(MapControl.java:1552) at java.lang.Thread.run(Thread.java:679) ERROR [MapControl Drawer Worker] (NotificationManager.java:90) - Coordinate operation error: +proj=longlat +ellps=WGS84 to +proj=tmerc +lat_0=0.0 +lon_0=-62.999999999999936 +k=0.9996 +x_0=500000.0 +y_0=0.0 +ellps=GRS80 : java.lang.IllegalStateException: Coordinate operation error: +proj=longlat +ellps=WGS84 to +proj=tmerc +lat_0=0.0 +lon_0=-62.999999999999936 +k=0.9996 +x_0=500000.0 +y_0=0.0 +ellps=GRS80 : at org.gvsig.crs.COperation.convert(COperation.java:274) at org.gvsig.fmap.geom.primitive.impl.Envelope2D.convert(Envelope2D.java:76) at org.gvsig.symbology.fmap.mapcontext.rendering.legend.impl.AbstractVectorialLegend.internalDraw(AbstractVectorialLegend.java:383) at org.gvsig.symbology.fmap.mapcontext.rendering.legend.impl.AbstractVectorialLegend.draw(AbstractVectorialLegend.java:336) at org.gvsig.symbology.fmap.mapcontext.rendering.legend.impl.AbstractVectorialLegend.draw(AbstractVectorialLegend.java:143) at org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect.draw(FLyrVect.java:293) at org.gvsig.fmap.mapcontext.impl.DefaultMapContextDrawer$DrawList.drawLayer(DefaultMapContextDrawer.java:539) at org.gvsig.fmap.mapcontext.impl.DefaultMapContextDrawer$DrawList.draw(DefaultMapContextDrawer.java:520) at org.gvsig.fmap.mapcontext.impl.DefaultMapContextDrawer$DrawList.drawLayers(DefaultMapContextDrawer.java:459) at org.gvsig.fmap.mapcontext.impl.DefaultMapContextDrawer.draw(DefaultMapContextDrawer.java:137) at org.gvsig.fmap.mapcontext.MapContext.draw(MapContext.java:1093) at org.gvsig.fmap.mapcontrol.MapControl$PaintingRequest.paint(MapControl.java:1332) at org.gvsig.fmap.mapcontrol.MapControl$Drawer$Worker.run(MapControl.java:1552) at java.lang.Thread.run(Thread.java:679)
History
#1 Updated by Álvaro Anguix over 10 years ago
- Assignee set to Ignacio Brodín
- Target version set to 2.1.0-2223-rc1
#2 Updated by Álvaro Anguix over 10 years ago
Añado que parece que gestiona mal el cambio de proyección de la Vista, ya que en la barra de estado aparecen datos de Longitud y Latitud, cuando realmente estamos en una Vista con un CRS con X e Y
No sé si formará parte del mismo bug o es otro nuevo.
#3 Updated by Álvaro Anguix over 10 years ago
Nacho, si ves que es más problema de CRS que del geoproceso se lo reasignas a JLucas.
#4 Updated by Álvaro Anguix over 10 years ago
- Target version changed from 2.1.0-2223-rc1 to 2.1.0-2219-testing
#5 Updated by Ignacio Brodín about 10 years ago
- Status changed from New to Awaiting response
Comento lo que está ocurriendo para que propongais soluciones:
- Cargas una capa que tiene coordenadas en metros en la vista que está en geográficas
- Al cambiar la proyección de la vista, la de la capa no cambia. Ya que cuando la cargaste asumió que era 4326
- Al ejecutar el geoproceso se genera una capa con coordenadas en metros a la que le estás diciendo que su proyección es 4326. Esto es porque lee su proyección de la capa fuente.
- Al cargar la capa con coordenadas en metros que piensa que su proyección es 4326 en una vista en 23030 intenta reproyectar miles de grados a metros con lo que el pollo está servido.
La conclusión es que los datos de entrada no son correctos pero gvSIG ha permitido que esto sea así. Quizás deberíamos plantearnos no dejar cambiar la proyección de una vista que ya tiene capas cargadas. El orden debería ser el inverso (cambiar la proyección de la vista y después cargar las capas). Otra solución sería cambiar la proyección de las capas que haya cargadas al cambiar la proyección de la vista aunque esto me gusta menos. Otra opción podría ser avisar al cambiar la proyección de la vista de que esto puede ocurrir. De cualquier forma el geoproceso no tiene la culpa.
Opiniones....
#6 Updated by Ignacio Brodín about 10 years ago
- Status changed from Awaiting response to Fixed
Finalmente se ha acordado mostrar un aviso al usuario al cambiar la proyección de una vista que ya contiene capas
"La vista ya contiene capas pero la proyección de estas no se va a modificar. Esto podría provocar errores en algunos geoprocesos."
#7 Updated by Álvaro Anguix about 10 years ago
- Status changed from Fixed to Closed