前段时间在论坛上问了一个关于delphi自动控制surfer自动绘制等值线图的问题,发现很多人都无法帮我解决。现在这个问题得到了解决向大家共享一下。有不足的地方希望大家多多指出,共同讨论。谢谢!
以下是控制的部分代码:
      surferapp := createoleObject('surfer.application'); //打开Surfer
      surferapp.visible := true;   //显示&隐藏Surfer窗口
      surferapp.windowState := 1;  //主窗口最大化
      plot := surferapp.Documents.add(1);
      Shapes := Plot.Shapes;           //获取plot文档对象的绘图元素对象集合
      surferapp.GridData(DataFile := FPath+'\data\gc.txt', Algorithm := 2,DupMethod := 2,
                          xmin:='123.604746',xmax:='143.209274',ymin:='29.1360828',ymax:='33.2242322',
                         ShowReport := false,OutGrid := FPath+'\data\gc.grd');//对原始数据网格化处理
      SurferApp.GridSplineSmooth(InGrid:=FPath+'\data\gc.grd', nRow:=20, nCol:=20,
                                OutGrid:=Fpath+'\data\smooth.grd'); //对网格化数据样条平滑处理
      SurferApp.GridBlank(InGrid:=FPath+'\data\smooth.grd',
                          BlankFile:=FPath+'\data\blank.bln',
                          OutGrid:=FPath+'\data\dgridblank.grd');//边界化&白化网格数据文件处理      ..............................      mapframe := shapes.AddBaseMap(ImportFileName := Fpath+'\data\basemap.bln');//添加底图
      Shapes.SelectAll;         //选择所有
      Plot.Selection.OverlayMaps;   //合并所有图层
      Plot.Export(FileName:=FPath+'\data\helens.bmp',
                  Options:='defaults=1,Width=700, Height=600,ColorDepth=24');//保存为真彩色    本论题只是简单的使用了delphi来控制surfer来绘制等值线图。    在delphi与surfer的结合中,更多的是用到surfer的帮助文件,其实surfer的帮助对VB的来说是很好的,还有很多地方需要和大家共同来学习。