Thursday, January 26, 2006

Dynamic QTS

One of the things we've been working on is a dynamic QTS solution. We need to have support for QTS trees that are created underneath us dynamically on our local drive. Why? Imagine spawning a dstile from within WorldWind when a user clicks on a local image.

Implementing this bumps up against several issues inside WW. First, QTS trees must be implemented to spawn the task request to tile an image (e.g. to dstile). Second, it must be able to "fix" the exception handling inside a QTS tree for missing tiles (which now becomes acceptable, assuming you are waiting for that particular tile to render). Thirdly, it must implement a dynamic timeout for finding tiles in a QTS tree.

To solve the first task (spawning the request), the solution is trivial.

To solve the second task (fixing the exception in 1.3.3.1), see the bug I posted in http://issues.worldwind.arc.nasa.gov/browse/WW-478.

Lastly, to implement the dynamic timeout for a tree tile, simply follow the suggested solution inside the above JIRA bug notice.

Now... here's the tricky part. What if you're imagery is not contiguous, or has areas where no imagery is present. In this case, your QTS tree file generator (e.g. dstile) should be smart enough to not create the file to begin with. But... with a dynamic QTS, you'll not know how to distinguish between a valid tile that just hasn't had its file written yet, and a blank one that will never be written. Worse yet, in the normal case, you'll frequently be doing disk checks (hopefully just fstats, underneath the .net hood) for the file's existence on the update worker thread.

To solve this last problem really requires better integration with your tiler, e.g. dstile.

If you'd like sample source of what I've done, let me know. But... we've got our own dstile'r.

1 Comments:

Blogger what_nick said...

Hi Urobots ,

The last one was a flukey ... do you want to work together on a Dynamic QTS/Like dstile and a Dynamic Terrain(C# version of my PHP scripty)

6:43 PM  

Post a Comment

<< Home