[Gvsig_desarrolladores] Carga de capa Raster

Nacho Brodin brodin_ign en gva.es
Jue Nov 9 08:12:16 CET 2006


Hola, ese código puede devolver null por varias razones. O el formato que 
intentas abrir no está soportado, o el raster no existe donde le dices que 
está, o las librerías Jni (jar o nativas) no están accesibles, o el raster 
está corrupto (no se si me dejo algún caso más). No se si te muestra algún 
mensaje de error cuando devuelve este null, quizás esto te de alguna pista. 
Después de hacer esta llamada puede salirte algún mensaje del tipo "Error en 
GdalOpen", "Extension not supported" o una traza de una excepción. El error 
más común de todos es que o no encuentra los jar de Jni o los binarios de 
jgdal, jecw o jmrsid no están accesibles. A ver si con esto lo arreglas o nos 
da alguna pistilla más y te seguimos ayudando.

Saludos.

Nacho Brodin

El Miércoles 08 Noviembre 2006 18:06, mj.gomez en telvent.abengoa.com escribió:
> Buenas tardes, estoy intentando abrir una capa ráster. Para ello tengo el
> siguiente código:
>
> CmsRasterDriver driver = new CmsRasterDriver();
>         driver.setProjection(proj);
>         driver.open(fich);
>         if (driver instanceof RasterDriver)
>         {
>                 layer = LayerFactory.createLayer(layerCHG.getNombre(),
> (RasterDriver)driver, fich, proj);
>
>         }
>
> El método create layer, hace una llamada a initialize de la clase
> CmsRasterDriver y dentro a openFile de GeoRasterFile. Ese método devuelve
> a la variable rasterFile de CmsRasterDriver un null y por eso me falla la
> siguiente instrucción de createPxRaster.
>
> El código que me devuelve null es el siguiente:
>
>         public static GeoRasterFile openFile(IProjection proj, String
> fName) {
>                 String ext =
> fName.toLowerCase().substring(fName.lastIndexOf('.')+1);
>                 GeoRasterFile grf = null;
>                 // TODO NotSupportedExtensionException
>                 if (!supportedExtensions.containsKey(ext)) return grf;
>                 /**/
>                 Class clase = (Class) supportedExtensions.get(ext);
>                 Class [] args = {IProjection.class, String.class};
>                 try {
>                         Constructor hazNuevo = clase.getConstructor(args);
>                         Object [] args2 = {proj, fName};
>                         grf = (GeoRasterFile) hazNuevo.newInstance(args2);
>                 } catch (SecurityException e) {
>                         // TODO Auto-generated catch block
>                         e.printStackTrace();
>                 } catch (NoSuchMethodException e) {
>                         // TODO Auto-generated catch block
>                         e.printStackTrace();
>                 } catch (IllegalArgumentException e) {
>                         // TODO Auto-generated catch block
>                         e.printStackTrace();
>                 } catch (InstantiationException e) {
>                         // TODO Auto-generated catch block
>                         e.printStackTrace();
>                 } catch (IllegalAccessException e) {
>                         // TODO Auto-generated catch block
>                         e.printStackTrace();
>                 } catch (InvocationTargetException e) {
>                         // TODO Auto-generated catch block
>                         e.printStackTrace();
>                 }
>
>                 return grf;
>         }
>
> A ver si sabeis que ocurre.
> Saludos y gracias



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