[Gvsig_desarrolladores] Migración de plugins de la 1.9 a la 2.0

Francisco José Peñarrubia fpenarru en gmail.com
Jue Jun 3 12:15:29 CEST 2010


Hola a todos, especialmente a los involucardos en pasar plugins de la 
1.9 a la 2.0

Estoy intentando migrar el plugin de redes (ahora se llamará 
networkAnalysis, pero las viejas costumbres cuestan mucho de 
erradicar... :-p) y me encuentro con una serie de tareas y problemas que 
estoy seguro que muchos de vosotros ya habeis resuelto.
Creo que sería una buena idea habilitar una zona en el plone o en 
cualquier otro sitio donde se puedan poner ese tipo de Snippets para 
ahorrar trabajo al resto de gente que está intentando migrar plugins.
De esta forma, también serviría para documentar algunas buenas prácticas 
(y que el equipo de arquitectura señalara las que no son tan buenas).
Más o menos todo está en la documentación, y se puede encontrar, pero 
requiere tiempo que se puede minimizar si ponemos algo como los "How 
to..." o incluso compartimos clases que ayuden a la migración.

En mi caso estoy haciendo algunas clases de utilidad para los casos 
comunes que me encuentro, por ejemplo, pasar una geometría a JTS, 
traducir un Envelope a Rectangle2D para operar con él, obtener campos 
alfanumércios de una capa, etc.
La idea sería compartir un poco todo esto, o incluso proponer un patrón 
Façade que facilite las tareas de migración. Pero vamos, que lo que más 
útil veo es poner un sitio donde podamos escribir los howto.

En mi caso, abro con una pregunta sobre los índices espaciales en la 
capa. El código de antes:

    public static SpatialIndex createJtsQuadtree(FLyrVect lyrVect) 
throws BaseException {
        ReadableVectorial va = lyrVect.getSource();
        if (!(va.getDriver() instanceof BoundedShapes))
            return null;
        va.start();
        QuadtreeJts spatialIndex = new QuadtreeJts();
        BoundedShapes shapeBounds = (BoundedShapes) va.getDriver();
        int to = va.getShapeCount();
        for (int i = 0; i < to; i++) {
            Rectangle2D r = shapeBounds.getShapeBounds(i);
            if (r != null)
                spatialIndex.insert(r, i);
            if ((i % 100000) == 0)
                System.out.println("Inserting  " + i + " bounding of " + 
to);
           
        } // for
        va.stop();
        // vectorial adapter needs a reference to the spatial index, to
        // solve
        // request for feature iteration based in spatial queries
        va.setSpatialIndex(spatialIndex);
        return spatialIndex;
    }


y ahora me gustaría saber cómo se crea un índice espacial en la 2.0. 
(Aunque esto admito que no es algo típico).

En otro orden de cosas, en el plugin de redes se usa un geoproceso de 
topología. No sé cómo está la migración de esa parte. Si va lento, creo 
que lo mejor es que meta ese geoproceso como algo de redes, no?

Saludos.

Fran.


Más información sobre la lista de distribución gvSIG_desarrolladores