gvSIG bugs #2248

Error al ejecutar buffer cuando se cambia CRS de la vista

Added by José Vicente Higón over 10 years ago. Updated about 10 years ago.

Status:Closed% Done:

0%

Priority:NormalSpent 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

Los pasos son los siguientes:
  • 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)
    

troncal_2203.zip (2.61 KB) José Vicente Higón, 01/28/2014 01:26 PM

gvSIG.log (89.3 KB) José Vicente Higón, 01/28/2014 01:26 PM

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."

gvsig-desktop:r40558

#7 Updated by Álvaro Anguix about 10 years ago

  • Status changed from Fixed to Closed

Also available in: Atom PDF