ThinkGeo.com    |     Documentation    |     Premium Support

Need help for GRID with Map Suite

Hi all.


I'm looking for a sample project or help on how to create GRID file.


Looks like old approach gis.thinkgeo.com/Support/Dis...fault.aspx    does not work with new component - object model is different.


Is it possible to convert map 2.0 GRID algorithm to work with map 3.0?


Thanks.



Sergei,


Thanks for your post and question. I am glad to let you know that nothing needed to be changed if you want to use grid file in Map Suite 3.x, the grid formats are exactly the same both in MapSuite 2.x and MapSuite 3.x.


Sorry to say that the link you provided cannot be opened.


Following link taked about how to use the grid file in MapSuite 2.x with source code attached.

gis.thinkgeo.com/Support/Dis...fault.aspx


Following code shows you how to use the Grid file  from the above post used in  MapSuite 2.x sample in Map Suite 3.x Desktop Edition.



winformsMap1.MapUnit = GeographyUnit.DecimalDegree;
winformsMap1.CurrentExtent = new RectangleShape(-96.115612954611919, 29.954823851075187, -96.105810851850961, 29.947472274004468);
winformsMap1.BackgroundOverlay.BackgroundBrush =new GeoSolidBrush(GeoColor.StandardColors.Snow);

ClassBreakStyle gridClassBreakStyle = new ClassBreakStyle("CellValue");

gridClassBreakStyle.ClassBreaks.Add(new ClassBreak(double.MinValue, new AreaStyle(new GeoSolidBrush(GeoColor.SimpleColors.Transparent))));
gridClassBreakStyle.ClassBreaks.Add(new ClassBreak(6.2, new AreaStyle(new GeoSolidBrush(GeoColor.FromArgb(100, 255, 0, 0)))));
gridClassBreakStyle.ClassBreaks.Add(new ClassBreak(6.83, new AreaStyle(new GeoSolidBrush(GeoColor.FromArgb(100, 255, 128, 0)))));
gridClassBreakStyle.ClassBreaks.Add(new ClassBreak(7.0, new AreaStyle(new GeoSolidBrush(GeoColor.FromArgb(100, 245, 210, 10)))));
gridClassBreakStyle.ClassBreaks.Add(new ClassBreak(7.08, new AreaStyle(new GeoSolidBrush(GeoColor.FromArgb(100, 225, 255, 0)))));
gridClassBreakStyle.ClassBreaks.Add(new ClassBreak(7.15, new AreaStyle(new GeoSolidBrush(GeoColor.FromArgb(100, 224, 251, 132)))));
gridClassBreakStyle.ClassBreaks.Add(new ClassBreak(7.21, new AreaStyle(new GeoSolidBrush(GeoColor.FromArgb(100, 128, 255, 128)))));
gridClassBreakStyle.ClassBreaks.Add(new ClassBreak(7.54, new AreaStyle(new GeoSolidBrush(GeoColor.FromArgb(100, 0, 255, 0)))));

string gridFile = @"..\PHIDW_2_200_A.grd";
GridFeatureLayer gridFeatureLayer = new GridFeatureLayer(gridFile);
gridFeatureLayer.Open();
Collection<Feature> allFeatures = gridFeatureLayer.QueryTools.GetAllFeatures(ReturningColumnsType.AllColumns);

gridFeatureLayer.ZoomLevelSet.ZoomLevel01.CustomStyles.Add(gridClassBreakStyle);
gridFeatureLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;

LayerOverlay staticOverlay = new LayerOverlay();
staticOverlay.Layers.Add("GridFeatureLayer", gridFeatureLayer);
winformsMap1.Overlays.Add(staticOverlay);

winformsMap1.Refresh();

Any more questions just feel free to let me know.


Thanks.


Yale

 



Yale,


thanks for your response.


The sample code you provided is to display existing GRID files.


I'm trying to convert map 2.0 code to work with new map 3.0 component - IDW Interpolation.


For example, this line of code:


AddHandler GridLayer.CalculateCellValue, AddressOf CalculateCellValueHandlerIDW


The GRID rendering logic is located in CalculateCellValueHandlerIDW method and handler is added to the GridLayer.CalculateCellValue method.


When I try to use GridFeatureLayer object, I don't find CalculateCellValue method. How this supposed to work? Perhaps I'm looking for wrong method in wrong place?


Thanks again for your great support.



Sergei,


Thanks for your response and I am sorry for my misunderstanding.
 
I am sorry to say that the Creating logic used in Map Suite 2.x as following is not added in Map Suite 3.x. I have added this to our Gemini issue (issue 5920) working list, hope we can get it added soon. Sorry for the inconvenience for now.
 

 


public static event GridLayer.CalculateCellValueEventHandler CalculateCellValue;
 
public static bool CreateGridFile(string PathFileName, StraightRectangle GridExtent, double CellSize, double NoDataValue);

 
Any more questions just feel free to let me know.
 
Thanks.
 
Yale

Thanks Yale.


Let me know when it will be available.



Sergei, 
  
 We are now pretty busy in the next release. Hope after that, we may have some plans to fix these issues. 
  
 Any more questions just feel free to let me know. 
  
 Thanks. 
  
 Yale