Making Layers
From World Wind Wiki
This is the beginning of an attempt to try to document a process so people that have GeoTIFF's can produce and maybe even serve up data for WorldWind. If you have any insights or info please add on.
[edit] Things We Know
- WW's tiling scheme: [1], [2].
- Formula to go from Lat/Long to WW tile numbers.
- Nowak has a C program that uses GDAL to do this and he has another progam that packs them up so you dont have to manage zillions of files + a little PHP script to extract the correct tile from the image pyramid. Nowak released source code to DSTile (the tiler) and TilePack (packs up tiles into a image pyramid) as Open Source (BSD licensed).
- What if you were to call dstile dynamically from inside WorldWind? Urobots talks about how to do this in his blog. what_nick has been working on a dstile version that can be run as a plugin in WW (forum thread, the code is in SVN)
- Lucians OnEarth code for Apache to 'sniff' WorldWind requests, pass the request off to WMS (if needed) and cache the tiles if they are not already cached download + a few data serving scripts
- A Dstile howto on creating your own tiled imagery layer and putting it in your cache.
[edit] Things We Know We Don't Know
- How does altitude relate to a level in a layer being displayed?
- How does <TileSize> and <Level0TileDegrees> affect #1?
- When do you know when to 'stop'? (ie. how do you know you are at 1:1)
- Even though L0TD == 2.25, how do we get larger tiles when viewing the whole earth?
Some answers came here
[edit] The Procedure for Making (As Far As I understand It Right Now)
- Obtain a georeferenced geotiff and reproject it to EPSG:4326. (or reproject with 'gdalwarp' in step 3 as you go along)(note: for those crusty-brained barnacle heads, ESPG:4326 = WGS84, and NAD83 is supposedly generally equivalent- check to verify before you take my word for it, though)
- Get the bounds of the GTiff.
- Take the lower left bounds and round to the nearest multiple of L0TD for lat and lon.
- Extract a L0TD sized chunk of the GeoTIFF starting at the coordinates of #3..
- Resample the chunk to <TileSize>(scale it to 512x512px or whatever tilesize you pick) and convert to image format of choice.
- Place it in the correct directory and rename the tile according to the naming formula. <insert naming formula here>
- Iterate in L0TD sized chunks over the entire TIFF till you have covered the upper and right side bounds.
- Divide L0TD by 2, and start over with #3
- Stop when you are at 1:1 scale (ie your L0TD sized chunk is less than <TileSize> in one of the dimensions.