ThinkGeo.com    |     Documentation    |     Premium Support

Issue with TileCacheGenerator while displaying raster data

Hello,


I am trying to create a sample application which can use tile cached images for raster data.  I used tilecachegenerator from the wiki and modified it for the raster layer.


 



  GeoTiffRasterLayer rasterLayer2 = new GeoTiffRasterLayer(@"S:\IMAGERY\ISC\48 18 W3\48_18_3_RGB.tif");            
 layersToCache.Add(rasterLayer2);

I am using the raster layer extent to fix the extent of cache



 InitializeComponent();
            Collection<Layer> layerToCache=LayerProvider.GetLayersToCache();
            RectangleShape rectBoundingBoxComplete = null;
            RectangleShape rectBoundingBoxLayer;
            foreach (Layer layer in layerToCache)
            {
                if(!layer.IsOpen)
                    layer.Open();
                if (layer.HasBoundingBox)
                {
                    rectBoundingBoxLayer = layer.GetBoundingBox();
                    if (rectBoundingBoxComplete == null)
                    {
                        rectBoundingBoxComplete = rectBoundingBoxLayer;
                    }

                    else
                    {
                        rectBoundingBoxComplete.ExpandToInclude(rectBoundingBoxLayer);
                    }
                }
                layer.Close();

            }
            if (rectBoundingBoxComplete != null)
            {
                txtUpperLeftX.Text = rectBoundingBoxComplete.UpperLeftPoint.X + "," + rectBoundingBoxComplete.UpperLeftPoint.Y;
                txtLowerRightX.Text = rectBoundingBoxComplete.LowerRightPoint.X + "," + rectBoundingBoxComplete.LowerRightPoint.Y;
            }

But when I try to display this raster in my mvc application, I am seeing some extra duplicate tiles at different location (please see attachment). I have tried to generate tiles several times but the result is same. The projection of raster is utm 13 N, NAD 83 and I am using mapunits as meter in tilecache generator code. I am not sure what is going wrong here. Here is my mvc code: 
@{
    ViewBag.Title = "Index";
}
@using System.Collections.ObjectModel
@using ThinkGeo.MapSuite.MvcEdition
@using ThinkGeo.MapSuite.Core

    @{
        Collection<Layer> layerList=new Collection<Layer>();
        GeoTiffRasterLayer rasterLayer1 = new GeoTiffRasterLayer(@"S:\IMAGERY\ISC\48 19 W3\48_19_3_RGB.tif");
        GeoTiffRasterLayer rasterLayer2 = new GeoTiffRasterLayer(@"S:\IMAGERY\ISC\48 18 W3\48_18_3_RGB.tif");

        rasterLayer1.UpperThreshold = double.MaxValue;
        rasterLayer1.LowerThreshold = 0;

        rasterLayer2.UpperThreshold = double.MaxValue;
        rasterLayer2.LowerThreshold = 0;
        
        
        //Proj4Projection proj4 = new Proj4Projection();
        //proj4.InternalProjectionParametersString = Proj4Projection.GetEpsgParametersString(4326);
        //proj4.ExternalProjectionParametersString = Proj4Projection.GetGoogleMapParametersString();
        //rasterLayer1.ImageSource. = proj4; 
        
        //LayerOverlay RasterOverLay=new LayerOverlay();
        //RasterOverLay.Layers.Add(rasterLayer1);
        //RasterOverLay.Layers.Add(rasterLayer2);
        
       // layerList.Add(rasterLayer1);
       layerList.Add(rasterLayer2);
       
            RectangleShape rectBoundingBoxComplete = null;
            RectangleShape rectBoundingBoxLayer;
        foreach (Layer layer in layerList)
        {
            if (!layer.IsOpen)
            {
                layer.Open();
            }
            if (layer.HasBoundingBox)
            {
                rectBoundingBoxLayer = layer.GetBoundingBox();
                if (rectBoundingBoxComplete == null)
                {
                    rectBoundingBoxComplete = rectBoundingBoxLayer;
                }

                else
                {
                    rectBoundingBoxComplete.ExpandToInclude(rectBoundingBoxLayer);
                }
            }
            layer.Close();
        }
        ;
        Html.ThinkGeo().Map("Map1", 1029, 1024)
        .MapBackground(new BackgroundLayer(new GeoSolidBrush(GeoColor.FromHtml("#E5E3DF"))))
        .CurrentExtent(rectBoundingBoxComplete.UpperLeftPoint.X, rectBoundingBoxComplete.UpperLeftPoint.Y, rectBoundingBoxComplete.LowerRightPoint.X, rectBoundingBoxComplete.LowerRightPoint.Y)
        .MapUnit(GeographyUnit.Meter)
        //.MapTools(tools =>
        //{
        //    tools.LoadingImageMapTool().Enabled(true);
        //})  
        //.CustomOverlays(overlay =>
        //                    {
        //                        overlay.GoogleOverlay();
        //                        overlay.LayerOverlay("RasterOverLay", true, TileType.MultipleTile).Layer (rasterLayer1);
        //                        //overlay.LayerOverlay("RasterOverLay", true, TileType.MultipleTile).Layer(rasterLayer2);
        //                    }
        //    )
            .StaticOverlay(overlay =>
                               {
                                   //overlay.Layer(rasterLayer1);
                                   overlay.Layer(rasterLayer2);
                                   //TileType tType=new TileType();
                                   //tType. = TileType.MultipleTile;
                                   overlay.TileType(TileType.MultipleTile);
                                   overlay.TileHeight(256);
                                   overlay.TileWidth(256);
                                   //overlay.Layer(rasterLayer2);
                                   ServerCache sCache=new ServerCache (@"C:\Users\Chacko\Desktop\ServicesEditionSample_CacheGenerator_CS_120619\ServicesEditionSample_CacheGenerator_CS_120619\CacheFolder\RasterLayer2");
                                   overlay.ServerCache(sCache);
                                   //TimeSpan duration=new TimeSpan(8,0,0);
                                   //ClientCache cCache=new ClientCache(duration,"rasterLayerClient");
                                   //overlay.ClientCache(cCache);

                               }
        )
        .Render();
    }


<h2>Index</h2>



Hi Maya. 



Thanks for the post, but seems that we are unable to reproduce the problem mentioned. Could you send your test tiff file to us via forumsupport@thinkgeo.com or just attached it in this thread? Also I didn’t see where I can download the attached demo cached tile image, is there any missing here. 



Also. In the first code snippet, can you make sure there only be rasterLaer2 added to layersToCache.  What the start and end zoom level used to generate the cache ? Could you check the cached image files which is generated at ZoomLevel01, according to the code , it seems there is only one  picture file if using this zoom level, and the picture would be drawn with entire tif file.





Thanks, 

Johnny



Hi Johnny,


Thanks for your reply. I had added screenshots as attachment but did not insert into the post. Now, I have inserted screenshots.  I am sending you the link of geotiff image at the given email id. I am also sending the link to all cached images. I make sure that I only add rasterLayer2 to layersToCache. I think I had used zoom level 1 to 17. Please let me know if you need more information. 


Thank you so much.


Regards,


Maya



 Hi Maya, 


Thanks for your data, because the code in previous post is not runnable  therefore we changed some based on your code, but we didn’t find the problem attached which is the sample code we tested, would you please check it and tell us what we missed? Here is a captured video of our testing:


screencast.com/t/InR0gVh3


 


Hope it helps, 


Johnny



 Please check the detailed code here.



Demo_code.zip (1.33 KB)

Hi Johnny, 
  
 Thanks for investigating this. I used the code you supplied but there are still same problems. Did you use the same cached tiles I supplied or did you recreate cached tiles?

Hi Maya, 
  
 This phenomenon is weird, we used the same cache data provided by you, would you please provide us a small sample to test it, maybe it is some setting in VS? Also can you let me know the configuration of you development machine, such as OS version, Culture info etc.? 
  
 Waiting for your further information. 
  
 Johnny. 


Hi Johnny, 
  
 I had already sent you an email regarding this. I tried running the sample on another computer and the same issue is there as well. Pasting the content of my email here as well: 
  
 Yes, this is really weird. I am using thinkgeo mvc evaluation version 6.0.0.0.   OS is Windows 7 home premium with SP1. I have tried running the program in VS 2010 and VS 2012 with same issues. I will also try this on another computer. 
  


Hi Maya,
 
Thanks for your sample, but the problem still didn’t show up, we tested your sample only with different filepath in the “Index.cshtml”. In previous post, you said this sample will be tested on another machine, would you please tell us the result of the test? BTW, did you “Delete Browsing History” before you test? What is your language and location?
 
Here is a captured video of our test:

screencast.com/t/cxPTXKFbzXn


Regards,


Edgar