爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 6748|回复: 10

[底图] 为什么我画的图边缘会有白色的缝隙

[复制链接]

新浪微博达人勋

发表于 2012-9-1 19:12:18 | 显示全部楼层 |阅读模式

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

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

x

Private Sub Command8_Click()
Dim objSurfer As Object
Dim objPlot As Object
Dim objMapFrame As Object
Dim temp As Boolean
Dim ContourMap As Surfer.IContourMap

With dlgCommon1
    .DialogTitle = "打开数据文件"
    .Flags = 0
    .CancelError = False
    .FileName = ""
    .Filter = "数据文件 (*.dat)|温度.dat"
    .ShowOpen
    If Len(.FileName) = 0 Then
        Exit Sub
    End If
    strinfile = .FileName
  End With
strGridFile = Left(strinfile, Val(InStrRev(strinfile, ".")) - 1) + ".grd"
Set SurferApp = CreateObject("Surfer.Application")
SurferApp.Visible = False

SurferApp.GridData DataFile:=App.Path & "\温度.dat", xCol:=1, yCol:=2, zCol:=3, Algorithm:=2, DupMethod:=2, ShowReport:=False, OutGrid:=App.Path & "\差值后1.grd", xMin:=105.589, xMax:=106.125, yMin:=28.95, yMax:=29.56
SurferApp.GridBlank InGrid:=App.Path & "\差值后1.grd", BlankFile:=App.Path & "\永川边界.bln", OutGrid:=App.Path & "\差值后1.grd"

Set Plot = SurferApp.Documents.Add(1)
Set ContourMapFrame = Plot.Shapes.AddContourMap(App.Path & "\差值后1.grd ")

       Set ContourMap = ContourMapFrame.Overlays(1)
ContourMap.Levels.LoadFile (App.Path & "\温度(传真).lvl")

ContourMap.SmoothContours = 4
ContourMap.ShowColorScale = True
  ContourMap.FillContours = True
ContourMap.ShowColorScale = True
ContourMap.ColorScale.FrameLine.Width = 0#
ContourMap.ColorScale.Left = ContourMap.Width + ContourMap.Left - 0.9
ContourMap.ColorScale.Width = 0.6
ContourMap.ColorScale.Height = 2.1
ContourMap.ColorScale.Top = ContourMap.Top - (ContourMap.Height - ContourMap.ColorScale.Height) / 1.1
ContourMap.ColorScale.LabelFont.Size = 8
ContourMap.LabelFont.Size = 5
Set BaseMap = Plot.Shapes.AddBaseMap(ImportFileName:=App.Path & "\永川边界.bln")
Set postmapframe = Plot.Shapes.AddPostMap(dataFileName:=App.Path & "\站点信息.txt", xCol:=1, yCol:=2, LabCol:=3)


Set postmap1 = postmapframe.Overlays(1)
Set MkFormat = postmap1.Symbol
With MkFormat
.Size = 0.05
.Index = 12
End With
Set lbFont = postmap1.LabelFont
With lbFont
.Face = "宋体"
.Size = 8
End With




Plot.Shapes.SelectAll
Plot.Selection.OverlayMaps
Plot.Export FileName:=App.Path & "\温度图(传真).gif", Options:="Width=700,Height=700"
Plot.Close
SurferApp.Quit

Picture1.Picture = LoadPicture(App.Path & "\温度图(传真).gif")
End Sub

温度图.gif
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-9-1 20:45:52 | 显示全部楼层
插值网格格距太大,可以参考先前的一些帖子
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-9-2 16:31:40 | 显示全部楼层
同问 我是用surfer手动画出来的 也有缝隙
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2012-9-2 20:18:49 | 显示全部楼层
可能原因:
1,如2#说的,插值间距有点儿大了,在第一页可以调整的;
2,你用的底图有些问题,可你的白化图不匹配,你用一张图白化看看,白化的时候注意bln里面的1和0的调整;
3,右下角有大片的空白应该是你绘制等值线的时候下限设置的问题,那些地方是不是可能有负值····

【楼上@啦啦然说出现的间距应该属于第一种情况】
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-9-2 23:26:41 | 显示全部楼层
加大格点值 如下图
无标题.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-9-2 23:44:52 | 显示全部楼层
本帖最后由 远山 于 2012-9-2 23:49 编辑

你好,我看了您的这一行,“Set postmapframe = Plot.Shapes.AddPostMap(dataFileName:=App.Path & "\站点信息.txt", xCol:=1, yCol:=2, LabCol:=3)”
发现自己有些不知道的东西,问您一下哈,您的站点信息是怎么设置的啊! X是经度?Y是纬度?LabCol:=3包含站点和温度?如何做到的?我是通过设置两张张贴图完成的,方法比您的笨,还请您指教
此外,您的那个问题可以通过设置xMin:=, xMax:=, yMin:=, yMax:=, 后添加NumCols:=1500, NumRows:=1500来实现,设置数值越大白斑越少,但相应的运算速度也就越慢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-9-3 14:54:09 | 显示全部楼层

恩恩 修改之后果真没间隙了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-9-3 14:57:36 | 显示全部楼层
言深深 发表于 2012-9-2 20:18
可能原因:
1,如2#说的,插值间距有点儿大了,在第一页可以调整的;
2,你用的底图有些问题,可你的白化 ...

我还有个问题 就是怎么用surfer10调出自己想要的等值线和中间的填色 以前8是可以的 更新后找不到了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2012-9-3 16:58:10 | 显示全部楼层
可以的,需要自己事先保存一个确定的,然后以后再调用才可以
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-1-7 21:51:40 | 显示全部楼层
自己也在学习,也碰到过这样的问题,这下好像明白了一点
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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