ThinkGeo.com    |     Documentation    |     Premium Support

Caching Problem

I have two Layers.


1 - LAYER_1


         Is cached, but no tilling.


2 - LAYER_2


       Equal data as Layer_1, but no caching and no tilling.


 


When I do a PAN, the layer_2 works nice, but layer_1 seems not to move. If I enable tile on layer_1 it works nice.


I guess is something to do how the caching system is treating the request.


 


 



Hi Rui, 
  
 Yes, the MapSuite doesn’t allow adding the cache when working with no tilling. As far as we all know, the cached image is based on extent, in other words, if there is no tilling, the server will always save the images once we pan the map, because the extent changed. So we strongly recommend you to remove the cache without tilling. 
  
 Thanks, 
 Johnny 


Ok Johnny. But have also some problems with tilling when tile size is 2056.

 


Hi Rui,
We tried using tile width and height “2056” and Server Cache, but all works normally, here is the demo code:


        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                Map1.MapBackground.BackgroundBrush = new GeoSolidBrush(GeoColor.FromHtml("#E5E3DF"));
                Map1.CurrentExtent = new RectangleShape(-125, 72, 50, -46);
                Map1.MapUnit = GeographyUnit.DecimalDegree;

                ShapeFileFeatureLayer worldLayer = new ShapeFileFeatureLayer(MapPath("~/SampleData/world/cntry02.shp"));
                worldLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
                worldLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.CreateSimpleAreaStyle(GeoColor.SimpleColors.Transparent, GeoColor.FromArgb(100, GeoColor.SimpleColors.Green));

                LayerOverlay staticOverlay = new LayerOverlay();
                staticOverlay.TileWidth = 2056;
                staticOverlay.TileHeight = 2506;
                staticOverlay.IsBaseOverlay = false;
                staticOverlay.ServerCache = new ServerCache(@"e:\temp");
                staticOverlay.Layers.Add(worldLayer);
                Map1.CustomOverlays.Add(staticOverlay);
            }
        }


 
Can you check there is any difference with yours? I’m curious about why you are using 2056 as the width and height, just meant to decrease the count of requests?
Thanks,
Johnny
 

 



I used Google as base layer, and mapunit in meters. 
  
 Yes, 2056 is to decrease the number of server requests.

 


Hi Rui,
Ok, I did the test based on installation sample “Overlays/ShapeFilesOverGoogleMap.aspx”, and set width and height 2056, everything works fine. Here as following is the demo code. Is it possible to give us a demo which runs into your expected error if it doesn't work with you?


            if (!Page.IsPostBack)
            {
                Map1.MapBackground.BackgroundBrush = new GeoSolidBrush(GeoColor.FromHtml("#E5E3DF"));
                Map1.CurrentExtent = new RectangleShape(-13939426.6371, 6701997.4056, -7812401.86, 2626987.386962);
                Map1.MapUnit = GeographyUnit.Meter;

                Map1.MapTools.OverlaySwitcher.Enabled = true;
                Map1.MapTools.MouseCoordinate.Enabled = true;

                GoogleOverlay google = new GoogleOverlay("Google Map");
                google.JavaScriptLibraryUri = new Uri(ConfigurationManager.AppSettings["GoogleUri"]);
                google.GoogleMapType = GoogleMapType.Normal;

                ShapeFileFeatureLayer shapeFileFeatureLayer = new ShapeFileFeatureLayer(MapPath("~/SampleData/USA/STATES.shp"));
                shapeFileFeatureLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.CreateSimpleAreaStyle(GeoColor.FromArgb(100,212,220,184), GeoColor.FromArgb(255,132,132,154), 1);
                shapeFileFeatureLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;

                Proj4Projection proj4 = new Proj4Projection();
                proj4.InternalProjectionParametersString = Proj4Projection.GetEpsgParametersString(4326);
                proj4.ExternalProjectionParametersString = Proj4Projection.GetGoogleMapParametersString();
                shapeFileFeatureLayer.FeatureSource.Projection = proj4;

                LayerOverlay shapeOverlay = new LayerOverlay("Shape Overlay", false, TileType.MultipleTile);
                shapeOverlay.TileWidth = 2056;
                shapeOverlay.TileHeight = 2506;
                shapeOverlay.ServerCache = new ServerCache(@"e:\temp");

                shapeOverlay.Layers.Add(shapeFileFeatureLayer);
                shapeOverlay.TransitionEffect = TransitionEffect.None;

                Map1.CustomOverlays.Add(google);
                Map1.CustomOverlays.Add(shapeOverlay);
            }


 
Thanks,
Johnny

Hello,


could you just give a try to the code in the following link?


hotfile.com/dl/95755162/de33d10/thinkgeoCaching.zip.html 


I have included a video so you can better understand my problem.


 



Hi Rui, 
  
 Thanks for the code which recreate the issue properly. As far as we know, it’s caused by something wrong with scale calculating on client side. Please get the fixed version 4.5.73.0 or higher from helpdesk.thinkgeo.com with your own account. Maybe it’s unavailable now because of the package is still in process and there is something wrong with CRM system today, please wait hours. 
  
 Thanks, 
 Johnny

OK, I’ll give it a try. Still can’t get 4.5.73, only 66. 


Hi Rui, 
  
 The package with version 4.5.73.0 or higher can be available now. Please have a try. 
  
 Thanks, 
 Johnny

Is it possible this problem came back to life?

Well the problem I’m facing is the following: 
 I’ve a map with ESPG:900913 projection. 
 I’ve a WMS layer, and put the WMS to have 256 tiles and being cached server and client side. The WMS starts to appear all scramble after some zooms, the tiles positions are all messed up. 
 When I don’t use cache everything seems nice.

Rui, 
  
 Thank you for your post, did you meet this problem again? 
  
 Regards, 
  
 Gary

 


Yes I'm still facing this problem.  



And is not only with WMS is with all cached elements, even shapefilefeature layer

MapSuiteCore version: 5.0.20

MapSuiteCore version: 5.0.75 also has the problem....  



Any ideas ?  

I'm stuck with these...



Rui, 
  
 Sorry for deliver, because we are discussion this problem. 
  
 The old way to fixed this bug will cause some other tile problem, so we change it back before release 5.0, sorry to get you in trouble. 
  
 We will find another way to fix this, it will begin and please subscribe this post and I will let you know the result. 
  
 Regards, 
  
 Gary

Gary I did’t quite understood if it’s solved or not.  
  
 I recall there was a problem with the cache that was generating a lot of scales. Is at that point now?