gvSIG bugs #1642

Varios errores detectados en el build 2063

Added by Leticia Riestra about 11 years ago. Updated over 10 years ago.

Status:Closed% Done:

0%

Priority:UrgentSpent time:-
Assignee:Juan Lucas Domínguez
Category:Vector editing
Target version:2.1.0-2217-devel
Severity: Add-on version:
gvSIG version:2.0.0 Add-on build:
gvSIG build:2063 Add-on resolve version:
Operative System: Add-on resolve build:
Keywords: Proyecto:
Has patch:No Hito:
Add-on name:Unknown

Description

Hola

Hemos detectado varios errores en el build 2063. Os los indicamos aquí, con su posible correción para que los podáis incorporar al nuevo build que publiquéis

Error 1
En el config.xml de extEditing teneis asignado la misma posición "601101100" a dos herramientas:
- Symmetry_geometry
- Stretch_geometry

Hemos revisado todas las herramientas modify y pensamos que la numeración de Stretch_geometry debería de ser 601101200.

Error 2
En vuestra herramienta de edicion de mover vértice tenéis el método removeVertexGC cuando la geometría de la que se está removiendo el vértice es de tipo MultiPrimitive.

Puede darse el caso que la geometría de tipo multiprimitive solo esté compuesta de un único elemento.

En vuestro código estáis haciendo

Geometry resp = this.removeVertex(prim, handler);
for (int k=0; k<np; k++) {
       if (k != i) {
          resp = resp.union(gc.getPrimitiveAt(k));
       }
}
return resp;

Si solo tiene un único elemento, en lugar de devolver el Multi correspondiente, estáis devolviendo el elemento.
Hemos modificado y probado el método para que cuando el objeto resultante no sea de tipo Multi, se cree y devuelva ese objeto.

Error 3
En vuestra clase WKBParser2.java tenéis métodos para parsear las geometrías que vienen de base de datos y crear la geometría correspondiente en gvsig. (método protected Geometry parseGeometry(ByteBuffer data) throws CreateGeometryException).

Dentro de ese método para el caso concreto de MultiPolygon y MultiLinestring llamáis a sus correspondientes parseMultiPolygon(data) y parseMultiLineString(data).

MultiPolygon
Resulta que dentro de parseMultiPolygon(data) en lugar de crear un objeto de tipo MultiSurface (que es lo que le correspondería por ser un MultiPolygon) construis un Surface... Con lo cual, al redigitalizar la geometría, da un error de cast de tipos porque está intentando meter un surface2d donde tendría que ir un multisurface2d

MultiLineString
Con MultiLinestring pasa lo mismo que con MultiPolygon. Devolvéis un objeto de tipo Linestring en lugar de multilinestring con lo cual, a la hora de digitalizar da un problema. Os enviamos también en el fichero la redefinición de dicho método.

Os mandamos en el fichero adjunto los métodos.

MetodosCambiados.java Magnifier - Fichero con las soluciones a los errores detectados (3.76 KB) Leticia Riestra, 03/04/2013 09:42 AM

History

#1 Updated by Manuel Madrid about 11 years ago

  • Priority changed from High to Urgent

#2 Updated by Manuel Madrid almost 11 years ago

  • Category set to Vector editing

#3 Updated by Juan Lucas Domínguez over 10 years ago

  • Assignee set to Juan Lucas Domínguez

#4 Updated by Juan Lucas Domínguez over 10 years ago

  • Status changed from New to Fixed
  • Target version set to 2.1.0-2223-rc1

Fixed geometry and GUI issues.
Patches provided by Leticia Riestra (Univ. A Coruña, LBD, CITIC).

gvsig-desktop:r40722

#5 Updated by Joaquín del Cerro Murciano over 10 years ago

  • Target version changed from 2.1.0-2223-rc1 to 2.1.0-2217-devel

#6 Updated by Álvaro Anguix over 10 years ago

  • Status changed from Fixed to Closed

Also available in: Atom PDF