爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 15838|回复: 28

[vbscript] VB 调用 surfer 自动绘制等值图

[复制链接]

新浪微博达人勋

发表于 2012-9-7 11:12:23 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
Sub Main
Dim SurferApp,PostMap,ContourMap,ColorMap,ImageMap,MapFrame,Plot As Object
Set SurferApp = CreateObject ("Surfer.Application")
' 创建Surfer  的ActiveX对象。
SurferApp.Visible = True
' 显示Surfer  应用程序主窗口(前台)。
SurferApp.WindowState = 1
'  主窗口最大化
Set Plot = SurferApp.Documents.Add("Plot2.srf")
'  生成一个Surfer  的绘图文档,这里用自己保存好了模版文件出错 是哪儿语法有错么

SurferApp.GridData(DataFile:="D:\Scripter\well.DAT",Algorithm:=srfKriging,ShowReport:= False,OutGrid:= "D:\Scripter\well.grd")
' 对数据进行网格化

Set Shapes = Plot.Shapes
Set MapFrame = Shapes.AddImageMap(GridFileName:="D:\Scripter\well.grd")
Set ImageMap = MapFrame.Overlays(1)
'根据Grid 文件建立ImageMap 对象并显示
ImageMap.ShowColorScale = True
'建立黑色色标对象
Set ColorMap = ImageMap.ColorMap
ColorMap.LoadFile(Filename:="D:\Scripter\Rainbow.clr")
' 建立彩色色标对象

Set MapFrame = Shapes.AddContourMap("D:\Scripter\well.grd")
Set ContourMap = MapFrame.Overlays(1)
' 建立等值线对象

Set MapFrame = Shapes.AddPostMap("D:\Scripter\well.dat",LabCol:="4")
'标签显示第4列
Set PostMap = MapFrame.Overlays(1)
'标签旋转45度
    PostMap.LabelAngle=45
    '加标签前缀
   PostMap.LabelFormat.Prefix=ss
  '家标签后缀(这里报错,请问这里应该怎么写?)
   PostMap.LabelFormat.suffix=ss
'建立坐标对象
Plot.Export(FileName:="D:\well.jpg",Options:="Defaults=4,HDPI=200,VDPI=200,ColorDepth=32")
'导出等值图
'关闭所有文档窗口
SurferApp.Documents.CloseAll
'退出
SurferApp.Quit

End Sub

求解 surfer的帮助文档中只有操作帮助,VB 语法就没得 高人们啊
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-9-7 12:20:50 | 显示全部楼层
Set Plot = SurferApp.Documents.Open("Plot2.srf")
密码修改失败请联系微信:mofangbao
回复 支持 0 反对 1

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2012-9-7 13:50:10 | 显示全部楼层
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-9-7 17:00:38 | 显示全部楼层
PostMap.LabelFormat.Postfix = ss
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-9-8 09:41:59 | 显示全部楼层
yutian2999 发表于 2012-9-7 17:00
PostMap.LabelFormat.Postfix = ss

  谢谢了 行得通 !这些VB语法你是怎么会滴 我是到处找资料一点一点拼凑滴 像你说的这个我就怎么也拼不通 有这方面的资料吗?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-9-8 09:46:03 | 显示全部楼层
我是想通过在标签中加上后缀 来解决标签中中文显示为乱码的问题 通过你说的这个方法 大体可以解决了yutian2999
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-9-8 18:17:24 | 显示全部楼层
解决问题就行。
我也没有资料,当时看完你的问题,也是第一接触这个代码,我就把你那代码一段段拉去执行,现学现卖,后来看到surfer里面有个Scripter文件夹,有Scripter.exe可用来测试代码,但我还是没用那个来,只是在vb里用按钮命令来玩,但scripter.chm,也就是帮助文件里有介绍,我是看那帮助给你解决问题
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-9-10 11:48:55 | 显示全部楼层
我是没找到门道 呵呵。。。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-9-10 11:49:27 | 显示全部楼层
我是没找到门道 呵呵。。。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-9-14 17:21:14 | 显示全部楼层
"Dim SurferApp,PostMap,ContourMap,ColorMap,ImageMap,MapFrame,Plot As Object"
处理定义为object,还可以定义为其他的不?比如surfer.IMapFrame。如果定义为object不会自动化显示其属性,不好编程啊
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表