|
Gabriel, I think the move to JAI is *awesome*. I haven't looked at the code specifically yet, but I really like that you've offloaded the implementation details that can be handled by JAI to code that doesn't need to be supported inside geotools. There's a little on the LZERO_ORIGIN_TILE parameter here http://docs.codehaus.org/display/GEOTDOC/ArcSDE+Raster+Support but the deeper explanation is below: In ArcSDE 9.1 or below, when you load a raster using a sequence of tiles the *first* tile that you load gets to be the "0,0" tile, and the raster "origin" is set to the lower-left corner of that tile. This is unmodifiable after the raster is created. When querying a raster, one needs to know the x/y location of the upper-left tile and then work out the actual tiles to be queried based on the requested world-extent. On raster pyramid levels 1 or above, the x/y position of the 0,0 tile is trustworthy and will be the upper-left tile in the raster. However, at level zero, there can be a problem in this specific case: * You're using ArcSDE 9.1 or below * You didn't set a raster_origin point before loading the raster * You loaded the raster using a sequence of files (probably .tif files) and you didn't load the upper-left tile as the FIRST tile If the above three conditions are true, then the ArcSDE Java API will happily tell you that the level zero 0,0 tile is at the upper-left of the raster, but when you actually ask for that tile, you'll find out that at level zero the 0,0 tile is the FIRST TILE LOADED. Therefore, in order to access tiles above or to the left of the first tile loaded, you would need to trick ArcSDE into fetching you data from "negatively indexed" tiles, but the Jsde api doesn't allow negatively indexed queries, so that's out. This means that the data that is above or to the left of the first loaded tile is unavalaible at level zero, and you have to return level 1 (or 2, if skipLevelOne is set) data instead. The LZERO_ORIGIN_TILE parameter allows you to tell geotools exactly which tile is the "first loaded" tile so that queries of tiles above or to the left of that tile at level zero can be returned with level 1 or 2 data. This is a "filed and known" bug in the JSDE api, and in ArcSDE 9.2 or above you can re-set the raster origin using "sderaster -o ..." which I believe recalculates the various tables that cause this problem. I'd say that unless you have just such a setup to test against, I wouldn't worry about keeping support for the LZERO_ORIGIN_TILE parameter. If someone can come up with an sde raster that has this, err, "issue" and they can reproduce the problem, then all the code is in-place to support the fix...but without a working example it's a tough thing to code. hope that help gabriel, --saul Gabriel Roldan wrote:
|
------------------------------------------------------------------------------ Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM) software. With Adobe AIR, Ajax developers can use existing skills and code to build responsive, highly engaging applications that combine the power of local resources and data with the reach of the web. Download the Adobe AIR SDK and Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com
_______________________________________________ Geotools-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/geotools-devel
