ThinkGeo.com    |     Documentation    |     Premium Support

Random Pink Tiles When Initally Loading Map (Possible Caching Issue)

Hello,


I have Map Suite Web Edition v3.1.247 running through Internet Explorer 8.0.6001.18702.  For some reason, every once in a while when the map loads I get pink tiles on my Dynamic Overlays.


Here is the URL for when the Xs that appear:


 /tile_GeoResource.axd?OVERLAYID=Advisors&FORMAT=image%2Fpng&CACHEID=&PAGENAME=default&STYLES=&CLIENTID=My_Body_Map&EXTRA=010119241924&SRS=%2Bproj%3Daea%2Blat_1%3D29.5%2Blat_2%3D45.5%2Blat_0%3D37.5%2Blon_0%3D-96%2Bx_0%3D0%2By_0%3D0%2Bellps%3DGRS80%2Bdatum%3DNAD83%2Bunits%3Dm&BBOX=68224.363158816,-2431946.1977491,2568394.9240667,68224.363158822&WIDTH=256&HEIGHT=256&ZOOM=4


Here is the URL when the layer displays successfully:


/tile_GeoResource.axd?OVERLAYID=Advisors&FORMAT=image%2Fpng&CACHEID=&PAGENAME=default&STYLES=&CLIENTID=My_Body_Map&EXTRA=010127292729&SRS=%2Bproj%3Daea%2Blat_1%3D29.5%2Blat_2%3D45.5%2Blat_0%3D37.5%2Blon_0%3D-96%2Bx_0%3D0%2By_0%3D0%2Bellps%3DGRS80%2Bdatum%3DNAD83%2Bunits%3Dm&BBOX=68224.363158816,68224.363158822,2568394.9240667,2568394.9240667&WIDTH=256&HEIGHT=256&ZOOM=4


This only happens about 1 out of every 3 times I reload the map.


Some specifics on the map:


MapUnit = GeographyUnit.Meter;

CurrentExtent = new RectangleShape( -2300000.0, 1800000, 2800000, -1600000.0 );



Using CustomOverlays with

1 LayerOverlay that has two ShapeFileFeatureLayers (this is the base overlay)

1 LayerOverlay that has an InMemoryFeatureLayer

1 LayerOverlay that has an InMemoryFeatureLayer


All are projected using the same Projection object, using the SharedProj4ProjectionClass.

InternalProjection = ESRI:4326 (Lat/Lon)

ExternalProjection = ESRI:102003 (Albers)


My thought is that there is some Client-Side or Server-Side caching going on, because when I clear the Cache in the browser, it does not happen.  How do you disable the Client-Side or Server-Side cache?  I tried putting Response.Expires and Response.CacheControl headers to no avail.  I think it might have something to do with OpenLayer's internal caching mechanism.


- Is there any way to feed a new Unique ID to OpenLayers somehow when OnMapCreated is called?

 


 


 


 



You know what… I tried: 
  
 MyDynamicOverlay.ClientCache.CacheId = System.Guid.NewGuid( ).ToString( ); 
 MyDynamicOverlay.ClientCache.Duration = TimeSpan.FromHours( - 2 ); 
  
 And it seems to have worked.  Hopefully it sticks!

Nevermind… not resolved.  Issue continues, sadly.

I tweaked the Map.CurrentExtent to make sure all values had the right amount of zeros and it seems better.  I think I was specifying a square instead of a rectangle (my Map is 800 x 600).  Also did: 
  
 Map.ClientZoomLevelScales[0] = 0; 
 Map.ClientZoomLevelScales[1] = 0; 
 Map.ClientZoomLevelScales[2] = 0; 
  
 and  
  
 MyDynamicOverlay.ClientCache.CacheId = System.Guid.NewGuid( ).ToString( );  
 MyDynamicOverlay.ClientCache.Duration = TimeSpan.FromMinutes( 5 );  
  
 Not sure which did it…

Ok... I prematurely closed this. Went in this morning and had the same issue. Looks like it happens the first time loading the map after leaving it alone for more than 30 minutes. 



This image failed: 



 




/tile_GeoResource.axd?OVERLAYID=Advisors&FORMAT=image%2Fpng&CACHEID=496237e5-4831-4efc-aaf9-2eb8ca50525e&PAGENAME=default&STYLES=&CLIENTID=My_Body_Map&EXTRA=021224402440&SRS=%2Bproj%3Daea%2Blat_1%3D29.5%2Blat_2%3D45.5%2Blat_0%3D37.5%2Blon_0%3D-96%2Bx_0%3D0%2By_0%3D0%2Bellps%3DGRS80%2Bdatum%3DNAD83%2Bunits%3Dm&BBOX=-2431946.1977491,-2431946.1977491,68224.363158816,68224.363158822&WIDTH=256&HEIGHT=256&ZOOM=1 





As did this one: 

 




/tile_GeoResource.axd?OVERLAYID=Geography&FORMAT=image%2Fpng&CACHEID=&PAGENAME=default&STYLES=&CLIENTID=My_Body_Map&EXTRA=021224402440&SRS=%2Bproj%3Daea%2Blat_1%3D29.5%2Blat_2%3D45.5%2Blat_0%3D37.5%2Blon_0%3D-96%2Bx_0%3D0%2By_0%3D0%2Bellps%3DGRS80%2Bdatum%3DNAD83%2Bunits%3Dm&BBOX=68224.363158836,-556818.27706815,693267.00338581,68224.363158822&WIDTH=256&HEIGHT=256&ZOOM=3 






Gonna need some professional help with this one...



Abner, 
  
 Please recreate the pink tile; then open the address in a new window of IE to see whether these is any exception message thrown. 
  
 If it’s all blank, please send us your sample to help us recreate it. I guess there is some issue in your data. 
  
 Thanks, 
 Howard

There tiles were definitely empty.  However, while I was cleaning up my code to send over I noticed that one of the InMemoryFeatureLayer that I was manually filling up with Features (on Page_Load) was not closed after the loop that filled it.  This probably explains why sometimes it was broken and sometimes it wasn’t.  It’s been good for a week now, hopefully it stays. 
  
 Thanks, 
 Abner

Hi Abner, 
  
 So you mean it works now? That is good news. 
  
 Any more questions please let us know. 
  
 Thanks 
  
 Sun 


It’s good to go. 
  
 Thanks, 
 Abner

OK, please feel free to let me know if you have any more questions. 
  
 Thanks, 
  
 Sun