Making Layers
From World Wind Wiki
(Difference between revisions)
Revision as of 09:58, 17 August 2007 (edit) Mkpl (Talk | contribs) m (new dstile from what_nick) ← Previous diff |
Revision as of 14:00, 19 March 2008 (edit) (undo) Mkpl (Talk | contribs) m (→Things We Know) Next diff → |
||
Line 8: | Line 8: | ||
##'''[http://whatnick.dyndns.org:8080/tisham/dstile-0.2_win32_whatnickpatches.zip Dstile with what_nick's patches (13-08-2007)]''' + [http://whatnick.dyndns.org:8080/tisham/DsTileQtGUI.zip Dstile GUI] (bin) | ##'''[http://whatnick.dyndns.org:8080/tisham/dstile-0.2_win32_whatnickpatches.zip Dstile with what_nick's patches (13-08-2007)]''' + [http://whatnick.dyndns.org:8080/tisham/DsTileQtGUI.zip Dstile GUI] (bin) | ||
#What if you were to call dstile dynamically from inside WorldWind? Urobots [http://www.urbanrobots.com/Blogs/WW/2006/01/dynamic-qts.html 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 ([http://forum.worldwindcentral.com/showthread.php?t=9205 forum thread], the code is in [[Source code|SVN]]) | #What if you were to call dstile dynamically from inside WorldWind? Urobots [http://www.urbanrobots.com/Blogs/WW/2006/01/dynamic-qts.html 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 ([http://forum.worldwindcentral.com/showthread.php?t=9205 forum thread], the code is in [[Source code|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 [http://www.twobeds.com/upload/userfiles/adamhill/lucians%20code%20-%20cache_1_1.gz Download] | + | #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 + a few [[data serving scripts]] |
#A [[Dstile howto]] on creating your own tiled imagery layer and putting it in your cache. | #A [[Dstile howto]] on creating your own tiled imagery layer and putting it in your cache. | ||
Revision as of 14:00, 19 March 2008
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.
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 + a few data serving scripts
- A Dstile howto on creating your own tiled imagery layer and putting it in your cache.
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
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.