[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