ThinkGeo.com    |     Documentation    |     Premium Support

Performance with raster and with MsSql2008FeatureLayer


Hi, 
 
I have several questions about performance with raster, and with MsSql2008FeatureLayer.
 
1) RASTER
 
I did an application test using the class “MultiGeoRasterLayer (gis.thinkgeo.com/Support/DiscussionForums/tabid/143/aff/12/aft/6901/afv/topic/Default.aspx),
 and I notice that with tif files (200 rasters), the application has a low response times. May be I did mistake ?
 
The code is  : 
MultiGeoRasterLayerTIF.BuildReferenceFile(“C:\Steph_WPFCarto\Telechargements\ThinkGeo\MultiGeoRasterLayer\data\referenceFileTIF.txt”, “C:\Steph_Carto\RasterDalles”);
MultiGeoRasterLayerTIF multiGeoRasterLayer = new MultiGeoRasterLayerTAB(“C:\Steph_WPFCarto\Telechargements\ThinkGeo\MultiGeoRasterLayer\data\referenceFileTIF.txt”);

LayerOverlay rasterECWOverlay = new LayerOverlay(); 
rasterECWOverlay.TileCache = new FileBitmapTileCache(@"…\App_Data\layerOverlayDrawWithCacheECW\", “ManualCache”);
Bitmap nativeImageECW = new Bitmap((int)wpfMap1.ActualWidth, (int)wpfMap1.ActualHeight);
  GdiPlusGeoCanvas geoCanvasECW = new GdiPlusGeoCanvas();
 geoCanvasECW.BeginDrawing(nativeImageECW, wpfMap1.CurrentExtent, wpfMap1.MapUnit);
rasterECWOverlay.Draw(geoCanvasECW);
geoCanvasECW.EndDrawing();
rasterECWOverlay.TileCache = null

 
rasterECWOverlay.Layers.Add(“RasterECW”, multiGeoRasterLayer);
 
For my test, I use ‘only’ 200 rasters. But when we 'll deploy our application, there will be more than 200 rasters, about 600 rasters.
Is there a way to see raster from a certain threshold of zoom, and then the response times would be better … ? or an other way to have a better performance ?
 
 
2) Msssql2008FeatureLayer
Our data are recorded in sql server 2008 R2. We have several layers which for some have static data and the other have dynamic data.
So for layer whith static data, the code is  : 
MsSql2008FeatureLayer sql2008LayerComm = new MsSql2008FeatureLayer(connectString, “CommThinkGeo”, “FID”,0);

 
rasterECWOverlay.Layers.Add(“sql2008LayerComm”, sql2008LayerComm);
 
This layer has about 32000 polygons and so the response times is low when i use tools pan,zoom in or zoom out.
In my case, it’s not useful for the user to load this layer when the zoomlevel= 1, and so see the 32000 features.
Is there a way to see the layer only from a certain threshold ? For example, when the zoomlevel equal, the layer appears ?
 
 
For layer with dynamic data, the code is : 
 
MsSql2008FeatureLayer sql2008Layer = new MsSql2008FeatureLayer(connectString, “TotoTitib93_FID”, “FID”,0);
//Custom style
sql2008Layer.ZoomLevelSet.ZoomLevel13.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;

 
LayerOverlay worldOverlay = new LayerOverlay();
worldOverlay.TileType = TileType.SingleTile;
worldOverlay.Layers.Add(“Sql2008Layer”, sql2008Layer);
 
In this layer, there is 6500 polygons. And so the layer is visible when the zoom equals to 13. 
My question is  : 
When the zoom equal to 1, the layer is loaded in memory or only when the zoom equals to 13 ?
 
Thanks a lot for your help.
 
Regards.
 
 
Stéphanie.

 

Hi Invivo, 
  
 Welcome to MapSuite world. 
  
 1, Raster. You can set a certain threshold of zoom by using LowerThreshold and UpperThreshold, that can make the performance better. 
   
 2,Mssql2008FeatureLayer. The layer only be loaded when the zoom level from 13 to 20, so that you can set ZoomLevel as well as threshold to control the layer visibility. 
  
 Let me know if you have more questions. 
  
 Thanks, 
 James 


Hi James,  
  
 Thanks. 
  
 I use LowerScale and UpperScale and that works. 
 "multiGeoRasterLayer.LowerScale = wpfMap1.ZoomLevelSet.ZoomLevel20.Scale - 5;" 
 "multiGeoRasterLayer.UpperScale = wpfMap1.ZoomLevelSet.ZoomLevel15.Scale + 5;" 
  
 1) As for a Msssql2008FeatureLayer, the layer with raster is only loaded when the zoom level is to 15 to 20 ? 
  
 I have an another question, this one is about the reprojection of raster. 
 2) Is it possible de reproject a layer with rasters ? (For example in my case the layer "multiGeoRasterLayer"). 
  
  
 Thanks again for your help. 
  
 Regards. 
  
 Stéphanie. 


Steph, 
  
 Yes, the layer only load between 15 to 20 zoomlevel, because you set lower and upper scales. 
  
 MapSuite doesn’t support reproject a raster layer so far, only FeatureLayer can be reprojected, sorry for inconvenience. 
  
 Thanks, 
 James