怎么取.dat和.map的数据

zuyuwang 2007-06-27 10:08:17
我需要编程把mapinfo格式的地图图层数据读出来,但是前几天读了tab格式的说明
其中只讲了.map文件的结构,我有以下疑问:
(1) .map是二进制文件由以下6种类型的块组成:
HEADER BLOCK(BLOCKID 0)
当中主要包括了表的坐标系和内在结构的信息;
INDEX BLOCK(BI刀CKID 1)
当中主要包括用来定位在对象定义块里定义的地图对象的索引;
OBJECT DEFINITION BLOCK(BLOCKID 2)
当中主要是一些有关地图对象定义的基本信息;
COORDINATE DEFINITION BLOCK(BLOCKID 3)
当中保存的是地图对象的坐标信息;
DELETED BLOCK(BLOCKID 4)
当中保存的主要是用来表明哪些地图对象是可以再要的信息;
RESOURSE BLOCK(BLOCKID 5)
当中保存的主要是一些有关表的笔、刷子、字体及符号等资源的列表。
怎样才能读出这些二进制形式存储的块的内容呢?
(2)?.tab是以ASCII码形式存贮的,我能读出其信息。
.DAT文件当中包含了以二进制格式存贮的表的数据(属性数据),.DAT文件与dBase IV的数据格式十分相似,.ID文件的数据是以32位整型的形式存贮
又怎样取出这些属性数据呢?
请各位不吝赐教!
...全文
302 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zuyuwang 2007-06-28
  • 打赏
  • 举报
回复
先谢谢楼上的前辈!小辈不才,还没有弄明白
我还有疑问:
1)mapinfo 表里的数据(各图层的数据)只能是转换成mif/mid才能编写程序取出来吗?
2)polyline的sections数、line segments数这些数据是放在哪个文件中的?.DAT还是.MAP?
zuyuwang 2007-06-27
  • 打赏
  • 举报
回复
不会呀,着急呀!
自己顶一下!
  • 打赏
  • 举报
回复
只有一个办法,导出至MIF文件格,那样就可以读相应的数据了
如果您常发表科技性文章及论文,并且有众多的数据要 变成XYZ 3D图形,那 Surfer 可以 为您节省大量的时间,不必浪费昂贵的人工去做苦力。所以Surfer成为全世界使用最多的数 据式XYZ 3D绘图软件,最热门、功能最强的3D科学绘图软件。 1、Surfer 9(Surfer 9 supports grids up to 32767 rows and columns!)比Surfer8支持 的最大网格尺寸10000行和列提高到32767行和列。(对超大量数据的网格化是一个好消息, 比如高程数据体一般都是近亿的数据量) 2、使用了Tabbed(标签)窗口,在工作区顶部显示标签,打开的多个图形窗口,只需要简单 点击标签就可切换不同窗口,切换窗口操作更为方便。 3、提供图层功能(类似以前的Overlay功能)(图1),可以在对象管理器中很方便地对图层 进行操作,图层的图形现在支持透明显示(图2),这是增加的比较令人激动的功能。对于 不同对象之间也提供了类CorelDraw的群组功能,越来越向专业绘图软件靠近了(就是以前 的Combined)。 4、在状态栏中显示x、y、z的值。 5、在多边形的属性中的信息一项中,显示多边形的面积和周长(图4),现在可以方便计算某 一个区的面积了(只是还得需要造一个多边形区来查看它的属性才能得到这些信息,以后 会不会像其他软件一样,直接有一个面积和长度的快捷按钮,谁知道呢。)。 6、支持的格式越来越多(图54),令我感到高兴的是直接支持GeoSoft Montaj的网格文件了。 7、可以随意更换base Map中bln文件了(图6),以前的版本是不可以,如果想要更新Base图, 还得删除这个图件,打开bln文件重新做base图。 8、图形的色标设置更为方便,有预设好的色标可以使用(图7),并且还很漂亮(希望以后有 类似Montaj的等值线色标按面积等分自动设置功能)。 9、在相同坐标系中,不同图形之间cursor tracking功能(图8)。 10、等值线图的显示类似Pdf文档中的圆滑字角功能,使图形看起来更漂亮。 很遗憾的是Surfer9还是没有提供人们最需要的投影转换功能和图形坐标校正功能,即在图 形中任意显示和切换经纬度坐标和直角坐标(并能在不同带中自动拼图)。这些是测量方面 的东西,是不是对它要求的太高了呢。但做为一个绘图软件,没有投影转换是不是很遗憾。 图形规格与种类: --Contour Maps 可做等高线图,结果可输出成3D DXF --3D Wireframe Maps 可做三维网格图 --3D Surface Maps 可做三维表面图 --Post Maps 可做三维张贴图文字标注 --Shaded Relief Maps 可做阴影图,具有相片质量. --Image Maps 可做影像图, 可以做细腻的色阶处理 --Vector Maps 可做向量图, --Base Maps 可输入底图以便搭配3D图型 --Overlap Maps 可将图型重迭 --Overlap Maps 可将地面影像图与3D Surface重迭 --Gridding 可选择多种方格化功能 --Output 图型输出可选CGM、DXF、BMP、GIF、EPS、HPGL等 --Worksheet 数据输入可用Lotus、Excel、ASCII --Text 文字可用上下标、数学符号、线型符号、颜色都可定义 --可以和Grapher搭配,将剖面结果输出成Grapher之XY图形 --以上皆有教学动画范例 本软件快速上手: 1.开启Surfer,Open Excel文件,输入XYZ三组数据,一般来说Column A为X, Column B为Y, Column C为Z 2.网格化Grid,Datat,选要网格化的Excel文件,网格化完毕后存成.GRD文件 3.选择要画的MAP图形,如Contour Map等高线图,选.GRD档就会看到结果.就是这么简单! --若您要更改设定,往图形中央快点两下,即会显示出参数设定窗口. FAQ: 1.如何将等高线图上的数据存入文件中吗? --开启SURFER -> 开启 .GRD文件 -> GRID -> GRID NODE EDITOR,SAVE AS -> ASCII XYZ (.DAT) 2.SURFER 有Curve Fitting函数的功能吗? --没有,TableCurve 3D具有此功能. 3.三维表面图可与三维点图合并在一起吗? --不可以,TableCurve 3D具有此功能. 4.可以将Surfer的轮廓线剖开,出其Z值吗? --可以 Grid -> Slice (.bln文件) 5.可以求Surfer的体积吗? --可以 Grid -> Volumn. 6.可以将Surfer某部分不要画出来吗? --可以 Grid -> Blank (.bln文件) 7.可以将数个Surfer图重迭吗? --可以 Map -> Overlay Maps ; Stack Maps 8.可以将Grid档缩小吗? --可以 Grid -> Extract 9.可以直接用函数画z=f(x,y)的曲面吗? --可以 Grid -> Function 10.可以画向量图? 如电磁场,热流场,风向图等. --a.如果数据是X,Y,Z. 其中X,Y,是平面几何坐标,Z是物理量(如平板上的压力) ----Gridding后 Map -> Vector Map -> New 1-Grid Vector 即可 ----这是最基本的平面坐标向量图,直接以物理量Z值为向量图依据. --b.如果数据是X,Y,Z,Z1 ----其中Z1是位于X,Y,Z上之物理量(如台湾各地的压力). ----您必须做两个Gridding后才能开始用New 1-Grid Vector ----X,Y,Z 几何位置用(当底图用,可以立体显示) ----X,Y,Z1 物理量 --c.如果数据是X,Y,Z,X1,Y1 ----其中X1,Y1是位于X,Y,Z上之x,y向量分量(如台湾各地的风速及风向). ----您必须做三个Gridding后才能开始用New 2-Grid Vector ----X,Y,Z 几何位置用(当底图用,可以立体显示) ----X,Y,X1 x向量分量 ----X,Y,Y1 y向量分量 --d.如果您的数据是X,Y,Z,Angle,Length ----其中Angle,Length是位于X,Y,Z上之向量角度及大小.做法同c. 11.如何画Surfer的Breaklines and Faults? --可以 Grid -> Advanced options -> Breaklines and Faults (.bln文件要含Z值) 12.可以在Surfer上做程序吗? --可以,Surfer内建Surfer Script, 类似VB 13.可以在Excel上设计程序吗? --透过Excel的VBA,可以同时控制Surfer和Excel 14.Surfer的等高线动画是如何做的? --可运用Sufer2GIF的Windows模块,或whirlgif 程序Unix. 15.如果三维数据不等距,Surfer可以处理吗? --可以,Surfer专门处理此类问题 16.我有看到一张台湾的图,周边有海洋的温度等高线图,温度线不会穿过台湾如何做? --首先您先要有一张台湾的底图(.gsb,dxf..),再用Blank(.bln)遮掉Taiwan底图. 17.请问bln格式? length,flag x1,y1 x2,y2 ... xn,yn length,flag x1,y1 x2,y2 ... xn,yn 17.如果我想要在等高线图上放对应的高度文字该如何? --用Post Map 文件格式如下 x1,y1,label1 x2,y2,label2 ... xn,yn,label3 18.请问.GRD档可以直接编辑? --若是Surfer预设的.GRD是可编辑的,GRID/GRID NODE EDITOR.如果存成GS ASCII的.GRD可以用小作家编辑. 文件格式如下 DSAA 5 5 0 2 6 8 0 6 1 2 3 4 5 5 4 3 2 1 4 2 1 3 5 3 5 4 2 1 2 4 1 5 3 DSSA Xn Yn Xmin Xmax Ymin Ymax Zmin Zmax Z11,Z12,Z13,Z14,Z15 .... Z51,Z52,Z53,Z54,Z55 19.请问Surfer可以做三角图的等高线和影像图吗? 网络上有,我不会,作者Jeff告诉我如下 I used the ternary diagram feature in Grapher to plot the points shown on the figure. I then created a file of thermal conductivity values based on the mineralogical composition and mapped these points to an x-y grid which I contoured in Surfer. As I recall,I also created a blanking file in surfer to match the shape of the ternary diagram. I then pasted the Surfer contour plot into Grapher. 另外我们台湾的核能所黄万芬小姐有用Grapher写出三角图的等高线. 20.请问Surfer有提供曲线套配功能? 有,基本设定是Z=AX+BY+C的平面方程式 若您想其它请到GRID/Gridding Method/Polynomial Regression/Surface Definition 您甚至可以自订高阶的多项式函数 21.我想查任一X,Y的Z值,可以吗? 可以直接在GRID/GRID NODE EDITOR即可. 或MAP/Digitize 22.我的Blank图形要有被Blank的线,该如何做 您可以将Blank的.bln档当Base Map,再予以Overlap Maps即可 23.Blank可以用几次 不限次试,如此可以让您做很复杂的Blank图形 24.Surfer有网络版? 是的,Surfer也可以装到网络上 25.Surfer有PDF文件 有,但必须由购买者申请,原厂才会给 26.曲面上可以迭上XY的图? 可以Base Map + Overlay Maps 即可 Base Map必须由Grapher产生 27.曲面上可以加上一些空间上的点? 很困难 必须透过Base Map + Overlay Maps的技巧 28.等高线可以有Log轴? 没有,但可以和Grapher一起使用就可以有

2,158

社区成员

发帖
与我相关
我的任务
社区描述
它是一种特定的十分重要的空间信息系统。它是在计算机硬、软件系统支持下,对整个或部分地球表层(包括大气层)空间中的有关地理分布数据进行采集、储存、管理、运算、分析、显示和描述的技术系统。
社区管理员
  • 地理信息系统
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧