前段时间在论坛上问了一个关于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的来说是很好的,还有很多地方需要和大家共同来学习。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货