ThinkGeo.com    |     Documentation    |     Premium Support

Create Grid Cell Matrix

 


Hi,


We are using ThinkGeo to crate Grid Cell Matrix; I attached a sample (which is almost your contour sample).


In the sample I loaded a shape file which is the result of another software contour creation (took around 5 minutes to create).


The problem we have is that, if we want to create contour as good as the other software, we have to increase the column and row to 300*300 (or even more) which will made contour creation very slow.


I think one way to improve the speed is to change the GridDefinition class and it accepts Polygon instead of Rectangle as extent. Cause when you creating contour for an area, most of time there isn't any need to create grid-cell for points out of area.


I’ll be grateful if you help me to improve the speed.


Regards,


Ben


 


 



Sample_Isolines.zip (385 KB)

Hi Ben, 
  
 We made some changes to improve the speed, when using your sample and set the matrix as 100 X 100, the speed upgraded from 29s to 11s, I think the "5 minutes" will be decreased by using the new dll 6.0.109.0, please get it and have a try. 
  
 Regards, 
  
 Edgar

Hi Edgar, 
 Many thanks for your answer. 
  
 Where can I download the 6.0.109.0? in Customer portal latest version is  6.0.108.0 
  
 Regards

The package may be available in or after 3~4 hours if everything goes well, you can get it later. 



Edgar



Hi Edgar, 
  
 I tested it, and I can’t see any speed improvement. are you sure the 6.0.109.0 includes optimization? 
  
 Many thanks

I added the stopwatch to the method btnGenerateGridFile_Click, 



            Stopwatch watch = Stopwatch.StartNew();
            btnGenerateGridFile.IsEnabled = true;

            //Close the previous isoLineLayer and get ready to replace it with a new one
            LayerOverlay layerOverlay = (LayerOverlay)Map1.Overlays["isoLineOverlay"];
            layerOverlay.Layers["IsoLineLayer"].Close();
            layerOverlay.Layers["GridCellsLayer"].Close();

            layerOverlay.Layers["IsoLineLayer"] = GetGridIsoLineLayer();
            layerOverlay.Layers["GridCellsLayer"] = GetGridFeatureLayer();
            layerOverlay.Layers["GridCellsLayer"].IsVisible = cbxGridLine.IsChecked.Value;

            cbxGridLine.IsEnabled = true;
            layerOverlay.Refresh();
            watch.Stop();
            Debug.WriteLine(watch.Elapsed);

and the result is


6.0.108.0 25s


6.0.109.0 10s


Can you have a check please?


Thanks,


Edgar



 Hi Edgar,


 
Many thanks for your answer.
 
unforgettably for me the result is completely reverse 
5.5.59.0  21.42S
6.0.0.114  29.76S
 
please find a dample in the attachement.
 
Regards

Speed.zip (398 KB)

Ben, 
  
 The dll version 6.0.x.0 is different from the  6.0.0.x, 6.0.x.0 is the development branch which contains bug fix, API changes, product enhancements,etc. And the 6.0.0.x is the release branch which only contains bug fix to make it stable enough. So sometimes the changes are not synchronized. So please get the development branch which is 6.0.109.0 or later and have a try, if you want the release branch dlls, please let me know, I’ll try to synchronize it for you. 
  
 Regards, 
  
 Edgar

Edgar, 
  
 It’s working now, many thanks for useful answer. will be grateful id you sync development and release version too. 
 Another question about this issue is: how we can determined the progress of grid-creation process? I mean is there any event which we can subscribe to find the creation progress? 
  
 Best Wishes, 
 Ben  


Ben, 
  
 I’ve synced the release version, you can get the 6.0.0.116 or later and have a try. For your second question, sorry to tell you we don’t have such stuff currently but maybe we’ll add it in the future. 
  
 Regards, 
  
 Edgar