shapefile

阅读 / 问答 / 标签

有一幅黄河三角洲的遥感图,坐标为WGS-84-UTM-zone-50N,另一个是这个地方的shapefile文件,

这个应该是投影不同的原因,如果还不行,可以找我,具体看看是怎么回事!

怎样用ArcGIS修改shapefile的投影坐标

arcgis的shapefile是一种文件格式。所以投影文件一般是指.prj文件,1、你可以打开直接用记事本修改。2、用arccatalog打开后,打开属性修改3、在arcmap里面有楼上的方法也可以修改。

如何将geodatabase转换为shapefile

首先肯定一下你的问题,应该是如何将geodatabase里面的数据导出成shapefile, 可以使用arcgis desktop里的arcmap, 将相关数据图层给打开,然后在菜单中选择导出-》选取.shp 文件格式,就可以了。

arcgis如何得到shapefile图层各单元重心坐标

你直接用ArcToolbox->Data Management Tools->Features->Feature To Point工具就行,默认生出来的就是重心点。你可以详细看下工具的帮助说明。

在arcgis中如何找出shapefile文件夹

这个问题貌似有点不清楚啊shapefile是arcgis的一种数据格式,你在新建shapefile的时候就应该知道该文件保存的地方呢你可以在catalog中管理这些数据或者在电脑中搜索后缀为.shp的文件应该可以找得到的请采纳!

两个shapefile 文件怎么变成一个

绿色为1,红色为2 合并后

tif怎么添加shapefile

1、首先在手机中打开tif软件,找到个人中心。2、其次打开个人中心,找到添加文件,点击文件添加。3、最后选择文件类型为shapefile,点击添加即可。

调用axMapControl1.AddShapeFile方法出错: 指定的文件名无效

在入口程序那里加个ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);

arcgis中导入shapefile点文件 点无法显示 原因是什么 shapefile点文件里数据x,y是经纬度坐标,z是水位

你怎么导入的??直接加载的吧?

如何用python读取arcgis中shapefile文件的属性表?可以输出为excel格式吗

如果你是想基于ArcGIS进行开发,想直接在程序中获取矢量的属性表的话,用arcpy.TableToTable_conversion()(10.2版本,后续版本是否有变化我不太清楚)只是简单的读取的话,安装python的pandas或者geopandas库,直接read_file()就行了8输出excel的话可以用xlrd模块;或者pandas里的to_csv()然后手动另存为excel(一般还是存成.csv比较好,毕竟方便python的读取)

arcgis10中如何将一个shapefile分割为多个shapefile?

arcmapeditor工具条开始编辑选中“中国”多边形cut polygon,重复若干次就可以了。。。。arccatalog鼠标右键新建,选择shp

在arcgis10.0中,选中的地区有两条河,如何在一个shapefile(线)文件中添加两条河流

在图层上右击--属性--符号系统- 唯一值 ,两条河颜色就不一样了!

请问:用ArcGIS10打开以图层时出现“绘制 shapefile 时出现问题。已中止绘制。”怎么办?是什么原因引起的?

你的图层是否是arcgis9.3或者其他版本制作的?arcgis10对其他版本的数据兼容性不是很好

C#AE二次开发 创建一个shapefile后怎么用鼠标添加点要素

如何用python读取arcgis中shapefile文件的属性表?可以输出为excel格式吗

可以,如果arcgis是10版本,可以用arcpy模块中的SearchCursor读取shp的属性表;用python读写excel需要安装pythonWin或者安装comtypes都可以,你可以上网找一下这样的资料。

arcgis中怎么查看所画线段的长度?(长度单位是厘米还是毫米?),我是通过shapefile建立的线文件

打开属性表,Shape_length字段记录着要素的长度。单位可以在ArcMap右下角找到。Meters为米,unknown为未知。

E00格式数据转换成Shapefile格式

没有这么复杂吧?直接用Data Interoperability Tool下边的Quick Import工具就行了。没必要转成coverage这么古老的格式。

如何做到在arcgis土地分类中一个shapefile下有好几个土地类别

类中yfuidtyio

请问:在arcgis新建shapefile文件后,生成的.shp .shx .dbf文件,如何在里面录入数据。

右击文件,属性表。

shapefile文件中存储的是投影平面直角坐标还是空间直角坐标

shapefile文件中存储的数据主要有14种类型:Null,Point,PolyLine,Polygon,MultiPoint,PointZ,PolyLineZ,PolygonZ,MultiPointZ,PointM,PolyLineM,PolygonM,MultiPointM,MultiPatch,不同类型记录内容不同。可以是 平面直角坐标,也可以是 空间直角坐标。 请见“ shp文件奥秘及C语言编程对策”http://hi.baidu.com/svjvcfwticdkmse/item/4cc8d6f568b2ff10d6ff8c32

arcgis是不是不能创建只有文字的图层呢?shapefile要素里面没有文字啊?

shapefile是建不了单独的文字图层的你可以通过标注转为注记,将所需的文字转到对应图层之后编辑

多边形的面积计算中,地理数据库中多边形要素和shapefile文件多边形文件有何不

面状矢量图面积的计算 Polygon形成的多边形面积计算...最后,在ArcMap中调入面状的Shapefile文件,面积就计算...(个人地理数据库);(2)在Arccatalog中

Arcgis保存shapefile文件 输出名称无效

文件名.shp……后缀名别忘了

arcgis是不是不能创建只有文字的图层呢?shapefile要素里面没有文字啊?

shapefile是建不了单独的文字图层的你可以通过标注转为注记,将所需的文字转到对应图层之后编辑

如何用python读取arcgis中shapefile文件的属性表?可以输出为excel格式吗

可以,如果arcgis是10版本,可以用arcpy模块中的SearchCursor读取shp的属性表;用python读写excel需要安装pythonWin或者安装comtypes都可以,你可以上网找一下这样的资料。

E00格式数据转换成Shapefile格式

先在ArcCatalog中选择工具将e00数据转换到Coverage格式,然后在ArcEdit中对线数据和面数据进行拓扑重建,这样就完成了由E00到Coverage的转换,接着利用ArcToolBox中的其他工具就可以很方便地转换到其它的ArcGIS格式。下面详细地介绍转换过程。第一步:由E00格式向Coverage格式转换(1)启动ArcCatalog,打开“VIEW”菜单→“Toolbars”菜单→选择复选框“ArcView8xTools”,添加转换工具条ConversionTools。(2)单击ConversionTools下拉菜单,选择“ImportfromInterchangeFile”工具,打开“ArcViewImportInterchangeFile”对话框。(3)在“InputFile”框中输入E00数据文件路径和文件名,在“OutputFile”框中选择转换的文件路径和文件名。单击“OK”按纽,完成E00数据到Coverage数据的转换。第二步:拓扑重建ArcGIS数据的组织是采用拓扑关系构建的,数据转换时必须进行拓扑重建。首先启动Arc【需要安装workstation】,进入命令行界面,输入如下命令(假设文件路径在E:Data):(1)Arc:createworkspaceE:data(创建一个工作区)(2)Arc:workspaceE:Data(设置工作路径)(3)Arc:copyE:DataCoveragenameCoveragename(将源Coverage文件复制到当前工作区)(4)Arc:ArcEdit(启动ArcEdit)(5)ArcEdit:editcoverageCoveragename(设置当前编辑的Coverage文件)(6)ArcEdit:editfeaturearcs(设定当前编辑的特征)(7)ArcEdit:Clean(重建拓扑关系)(8)ArcEdit:save(保存)(9)ArcEdit:quit(退出ArcEdit)(10)Arc:quit(退出Arc)这样在路径E:data中的Coverage文件就是重建拓扑以后的文件。第三步:由Coverage格式向shp格式转换【主要有两种途径】第一种--在ArcToolBox中选择ConversionTools目录下的“ToShapefile”,将其转换为shapefile格式。第二种--在ArcCatalog中选择要转换的coverage文件,右键单击,选择“Expout”菜单下的“ToShapefile(multiple)”。总之,e00转换为shp的操作过程是这样的--在ArcCatalog工具栏上右击选择arcview8xtools工具,然后选择其下的ImportFromInterchangeFile,先输出为coverage,再转换为shp就可以了!

如何在arcgis中建立point.shapefile,并加载图层?

在arccatalog中右击,选择新建,选择shapefile,类型选point,输入名称即可新建完成,然后打开arcmap,将新建的数据加载进来就可以。

在ARCGIS软件下,创建shapefile数据和文件数据库的步骤

在arccatalog里,在文件夹连接下的文件夹上右键,选择新建,然后菜单上就有新建shapefile和个人文件数据库,后面就一直下一步就可以了

arcgis中怎么添加shapefile的点,线,面等文件

在有了字段后,表还是空的,这里的表其实和数据库里的表table的概念是一模一样的。有了表结构,下面就是对表内容进行进行添加删除修改了。这个操作需要使用ArcGISDesktop里的ArcMap软件。打开ArcMap之后,首先把编辑器和绘图工具条调用出来。在【自定义】【自定义模式】中可以操作,简单的也可以在工具栏空白处点击右键直接打开这些工具条。将shape文件拖动到左侧的图层上,一般应该有其他的要素类,这样才能作为参考,我这里就光一个shape要素类了,做做实验而已。然后点击【编辑器】工具条,点击下拉菜单的【开始编辑】。如果有多个要素和图层,会让你选择,因为编辑只能编辑一个要素,不能同时编辑俩要素,所以要选择一个。

C++中怎么读取shapefile格式的文件

都可以用fopen,fread()和CFile file.read()

shapefile文件的获取

首先我们需要在电脑上下载安装QGIS软件,小编用的版本是GIS 3.4,如图所示。请点击输入图片描述有了QGIS软件后,打开QGIS Desktop 3.4.1 程序,如图所示。请点击输入图片描述打开QGIS后,新建一个shapefile图层,如图所示,按照图中的菜单,点击Layer,点击New Shapefile Layer即可。请点击输入图片描述点击创建图层后如图所示,需要给文件命名,并且选择图层类型,有Point点、Line线、Polygon面。这里选择的是Polygon。请点击输入图片描述然后画一个多边形,如图所示,点击画笔小按钮,开始编辑,随意画一个多边形,以鼠标右键点击结束。请点击输入图片描述下一步,导出图层:如图所示,在图层名字上面点击鼠标右键,然后选择Export,选择Save Features As。请点击输入图片描述然后出现如图所示的页面,选择图中的导出类型,再选择好导出的路径。请点击输入图片描述导出成功后,如图所示,一般是有6个文件。请点击输入图片描述

文本文件必须包括哪些数据才能转换成shapefile

文本文件必须包括数据才能转换成shapefile:先在ArcCatalog中选择工具将e00,数据转换到Coverage格式,然后在ArcEdit中对线数据和面数据进行拓扑重建。根据GML3规范中的Schema的描述、Shp文件和Mif文件的格式,就能将Shp文件和Mif文件转换为GML文件。在转换过程中,首先要创建一个GML格式文档。文本文件.txt:.txt格式并没有明确的定义,它通常是指那些能够被系统终端或者简单的文本编辑器接受的格式。任何能读取文字的程序都能读取带有.txt扩展名的文件,因此,通常认为这种文件是通用的、跨平台的。在英文文本文件中,ASCII字符集是最为常见的格式,而且在许多场合,它也是默认的格式。对于带重音符号的和其它的非ASCII字符,必须选择一种字符编码。

shapefile有哪几部分构成?

shapefile有这几部分组成,shp文件、shx文件、dbf文件三个文件才是完整的Shapefile文件,而.prj文件虽然不是必须的文件,但是其中包含了几何图形的投影信息,一般也需要包括在内。Shapefile是一种矢量图形格式,其能够保存几何图形的位置及其相关属性,实质上是一种存储方法。

shapefile是什么意思

shapefile意思是:Shape文件。ESRI Shapefile(shp),或简称shapefile,是美国环境系统研究所公司(ESRI)开发的一种空间数据开放格式。该文件格式已经成为了地理信息软件界的一个开放标准,这表明ESRI公司在全球的地理信息系统市场的重要性。Shapefile也是一种重要的交换格式,它能够在ESRI与其他公司的产品之间进行数据互操作。Shapefile文件用于描述几何体对象:点,折线与多边形。例如,Shapefile文件可以存储井、河流、湖泊等空间对象的几何位置。除了几何位置,shp文件也可以存储这些空间对象的属性,例如一条河流的名字,一个城市的温度等等。Shapefile属于一种矢量图形格式,它能够保存几何图形的位置及相关属性。但这种格式没法存储地理数据的拓扑信息。Shapefile在九十年代初的ArcView GIS的第二个版本被首次应用。许多自由的程序或商业的程序都可以读取Shapefile。shapefile格式限制1、Shapefile与拓扑:Shapefile无法存储拓扑信息。在ESRI的文件格式中,ArcInfo 的Coverage、以及Personal/File/Enterprise地理数据库,能够保存地理要素的拓扑信息。2、空间表达:在shapefile文件之中,所有的折线与多边形都是用点来定义,点与点之间采用线性插值,也就是说点与点之间都是用线段相连。在数据采集时,点与点之间的距离决定了该文件所使用的比例。当图形放大超过一定比例的时候,图形就会呈现出锯齿。要使图形看上去更加平滑,那么就必须使用更多的点,这样就会消耗更大的存储空间。在这种情况下,样条函数可以很精确地表达不同形状的曲线而且占据相对更少的空间,但是shapefile并不支持样条曲线。3、数据存储:.shp文件或.dbf文件最大的体积不能够超过2 GB(或2位)。也就是说,一个shapefile最多只能够存储七千万个点坐标。文件所能够存储的几何体的数目取决于单个要素所使用的顶点的数目。

怎么在 ArcGIS 中把 dwg annotation 转为 point shapefile

pointshapefile是arcgis中常见的,存储点数据的文件;dwg数据是CAD中的数据,把dwg文件直接导入arcgis,通过“要素转点”就可以得到点的shp数据。工具箱(tools)-datamanagementtools-要素(feature)-要素转点(featuretopoint)望采纳,谢谢!

如何用IDL处理Shapefile数据

如何用IDL处理Shapefile数据使用IDL处理shapefile格式,需要了解IDLffShape对象,IDL帮助中有一些说明和代码,但过于简单,不熟悉的人很难上手,现对几个关键点进行说明:感和GIS不分家,IDL擅长处理遥感数据,但偶尔也需要用来处理一些GIS数据,不过还好IDL能处理Shapefile数一、读取shapefile文件1.首先要打开文件我们用Arcview带的数据做例子吧,就用那个国界数据吧。创建和销毁idlffshape分别使用的是IDL处理对象的通用命令OBJ_new和Obj_Destroy,每建立一个对象都要记着要销毁,否则会出现内存不足问题。pro readshapefileshapefile="C:ESRIESRIDATAWORLDcountry.shp" ;定义shape文件位置oshp=Obj_New("IDLffShape",filename)print oshp;中间处理代码Obj_destroy,oshp ;销毁一个shape对象end如果读取错误,oshp会返回-1,否则得话返回的就是一个结构体。2.获取整体描述信息读完shape对象后,就需要读几何数据和属性表数据了。Shapefile数据由几何体(或实体Entity)和属性表两部分组成,而几何体一般又包括点(point)、线(polyline)和多边形(polygon)(当然也有其它类型,但不常用)。属性表包括属性表结构、字段个数和记录个数,属性表记录数与实地必须一一对应,属性表的结构又包含字段名,字段类型,字段长度和精确度。在IDL读取数据前,需要了解一些全局属性,知道有多少个几何体和记录,属性表中有多少个字段,就需要用GetProperty方法,它查询shape文件的属性,包括实体类型,实体个数,属性表结构,属性表字段个数,记录数等,代码如下:pro readshapefileshapefile="C:ESRIESRIDATAWORLDcountry.shp" ;定义shape文件位置oshp=Obj_New("IDLffShape",filename)oshp->getproperty,n_entities=n_ent,Attribute_info=attr_info,n_attributes=n_attr,Entity_type=ent_typeprint,"实体个数:"n_entprint,"属性表字段数:",n_attrprint,"实体类型代码:",ent_typeObj_destroy,oshp ;销毁一个shape对象end3.再了解几个概念bouns存储的是每个实体的范围,是一个有8个元素的数组([x0,x1,x2,x3,x4,x5,x6,x7]),其中x0 —最小x值,x1 —最小y值,x2最小z值(高度),x3 — 最小M值(测量值,一般不用)x4-x7就是最大值了。注意,这里是每个实体的范围,而不是整个地图的范围,所以如果要求整个地图的范围,还需要整个再求一遍最大值和最小值。bounds还有一个作用,就是存储点的坐标,点类型数据没有安排另外的对象来存储,直接用bounds来管理。VERTICES线和面实体的所有坐标都存在这里面,是一个指针型数组,存储的是实体的所有拐点.读的时候比较容易,写入的时候,需要先建一个指针变量将坐标赋值到指针变量,然后将指针变量赋值给vertices.数组结构如下:[[x,y],[x,y],[x,y],[x,y],[x,y],[x,y]](如果是2维的话)[[x,y,z],[x,y,z],[x,y,z],[x,y,z],[x,y,z],[x,y,z]](如果是3维的话)N_VERTICES拐点的个数,不需要解释了.N_PARTS和Parts处理复杂对象的需要注意了,如有内环的多边形。所有的拐点坐标都存在vertices中,Parts也是一个指针数组,存储的是每个弧段的起始索引值。N_PARTS表示有几个弧段.ISHAPE表示实体的序号,是一个整形变量,读取的时候一般不需要注意,写的时候需要定义,序号不能重复。4.开始读坐标了如果要一次性读取全部实体,可以用ent=oshp->getentity(/all),但大部分时间都需要一个个的处理,就需要用循环pro readshapefileshapefile="C:ESRIESRIDATAWORLDcountry.shp" ;定义shape文件位置oshp=Obj_New("IDLffShape",filename)oshp->getproperty,n_entities=n_ent,Attribute_info=attr_info,n_attributes=n_attr,Entity_type=ent_typeFOR i=0,n_ent-1 do begin ;循环ent=oshp->getentity(i) ;读取第i个实体bounds=ent.bounds ;读取实体的边界n_vert=ent.n_vertices ;实体中包括拐点或顶点的个数,只有polyline和polygon具有该属性vert=*(ent.vertices) ;实体的顶点,只有polyline和polygon具有该属性n_parts=ent.parts ;只有polygon具有该属性part=*(ent.parts) ;part坐标;输出几何体范围print,"min x=",bounds[0]print,"min y=",bounds[1]print, "max x=",bound[3]print, "max y=",bound[4];如果是点的话,输出点坐标print,bounds[0],bounds[1];如果是线或面的话,输出点坐标for index in n_vert-1 do beginprint vert[index][0],vert[index][1]endforendforObj_destroy,oshp ;销毁一个shape对象end4.读属性属性表的结构属性表结构存储在Attribute_info中,前面代码已经获得了这个结构体(attr_info),下面的代码是打印每一个字段的结构pro readshapefileshapefile="C:ESRIESRIDATAWORLDcountry.shp" ;定义shape文件位置oshp=Obj_New("IDLffShape",filename)oshp->getproperty,n_entities=n_ent,Attribute_info=attr_info,n_attributes=n_attr,Entity_type=ent_typeFOR i=0,n_attr-1 do begin ;循环PRINT, "字段序号: ",iPRINT, "字段名: ", attr_info[i].namePRINT, "字段类型代码: ", attr_info[i].typePRINT, "字段宽度: ", attr_info[i].widthPRINT, "精度: ", attr_info[i].precisionendforObj_destroy,oshp ;销毁一个shape对象end读属性表中的值读属性表,跟读取实体有些类似,用GetAttributes方法pro readshapefileshapefile="C:ESRIESRIDATAWORLDcountry.shp" ;定义shape文件位置oshp=Obj_New("IDLffShape",filename)oshp->getproperty,n_entities=n_ent,Attribute_info=attr_info,n_attributes=n_attr,Entity_type=ent_typeFOR i=0,n_ent-1 do begin ;循环,n_ent跟记录数是一样的attr=oshp->GetAttributes(i) ;读取第i个记录for index in n_attr-1 do beginprint attr.(index)endforendforObj_destroy,oshp ;销毁一个shape对象end二、写入shapefile数据写入shapefile的一半过程是,首先初始化idlffshape对象,定义属性表结构,定义实体类型,写入坐标值,写入属性值,最后销毁对象初始化写入数据也用Obj_new初始化,不过需要设置输出实体的类型,并设置该数据可写,这里面重要的就是需要知道实体的类型代码,我们常用的就是1,3和5Point 1PolyLine 3Polygon 5MultiPoint 8PointZ 11PolyLineZ 13PolygonZ 15MultiPointZ 18PointM 21PolyLineM 23PolygonM 25MultiPointM 28MultiPatch 31对象初始化的代码如下:pro writeshapefileshapefile="d:datacitys.shp"oshp=obj_new("IDLffshape",new_shapefile,Entity_type=3,/update);;其他代码obj_destroy,oshp创建属性表结构和实体类型对所有类型的实体,创建属性表的方法都已一样的。用AddAttribute方法,一般用法为:oshp->AddAttribute, 字段名称,字段类型,字段宽度[, PRECISION=integer] 精度只有浮点和双精度等情况下采用,字符和整形可以缺省,也可以设置为0关键的还是需要知道常用的几种字段类型3 Longword integer5 Double-precision floating-point7 String没错只有三种,这不是idl的错,shapefile只定义了这三种定义实体类型的方法比较简单:entNew = {IDL_SHAPE_ENTITY}entNew.SHAPE_TYPE = 1 ;1为实体类型,表示点写入实体和属性这两个过程一般同时进行的,用代码表示吧:Pro writepointshapefile="d: estcitys.shp"oshp=OBJ_NEW("IDLffshape",shapefile,Entity_type=1,/update);定义实体类型entNew = {IDL_SHAPE_ENTITY}entNew.SHAPE_TYPE = 1 ;1为实体类型,表示点;添加坐标,加那个地方呢,我爱北京天安门吧entNew.ISHAPE=0entNew.BOUNDS[0] = 116.391188entNew.BOUNDS[1] = 39.904546entNew.BOUNDS[2] = 0.00000000entNew.BOUNDS[3] = 0.00000000entNew.BOUNDS[4] = 116.391188entNew.BOUNDS[5] = 39.904546entNew.BOUNDS[6] = 0.00000000entNew.BOUNDS[7] = 0.00000000entNew.N_VERTICES = 1;加属性了;先定义属性表结构oshp->AddAttribute,"id",3,8,PRECISION=0oshp->AddAttribute,"name",7,20,PRECISION=0oshp->AddAttribute,"longitude",5,8,PRECISION=4oshp->AddAttribute,"latitude",5,8,PRECISION=4;还要把实体写入到shp对象中oshp -> PutEntity, entNew;获得属性表结构对象new_attr = oshp ->GetAttributes(/ATTRIBUTE_STRUCTURE)new_attr.ATTRIBUTE_0 = 1new_attr.ATTRIBUTE_1 = "北京天安门"new_attr.ATTRIBUTE_2 = 116.3911new_attr.ATTRIBUTE_3 = 39.904546;把属性写入到shp对象中oshp -> SetAttributes,0,new_attr;这里面的0是指实体的索引值,等于entNew.ISHAPE;再加一个吧,就兰州了entNew.BOUNDS = [103.867694,36.048088,0,0,103.867694,36.048088,0,0]new_attr.(0)=2new_attr.(1)="兰州"new_attr.(2)=103.8676new_attr.(3)=36.0480oshp -> PutEntity, entNewoshp -> SetAttributes,1,new_attr;OBJ_DESTROY,oshpprint,"end"End以上是加入点类型的数据,比较简单,来个复杂点的,加两个多边形吧pro writepolygonshapefile="d: estForbidden_City.shp"oshp=obj_new("IDLffshape",shapefile,Entity_type=5,/update);定义实体类型entNew = {IDL_SHAPE_ENTITY}entNew.SHAPE_TYPE = 5;添加坐标coor=[[116.3852041484393,39.9214192520002],$[116.3856922399481,39.91151453640624],$[116.3960721525212,39.9118040463524],$[116.3955102491546,39.92183809311693],$[116.3852041484393,39.9214192520002]]entNew.ISHAPE=0entNew.BOUNDS[0] = min(coor[0,*])entNew.BOUNDS[1] = min(coor[1,*])entNew.BOUNDS[2] = 0.00000000entNew.BOUNDS[3] = 0.00000000entNew.BOUNDS[4] = max(coor[0,*])entNew.BOUNDS[5] = max(coor[1,*])entNew.BOUNDS[6] = 0.00000000entNew.BOUNDS[7] = 0.00000000pvertice=coorentNew.VERTICES=PTR_NEW(pvertice,/no_copy)entNew.N_VERTICES = 5;还要把实体写入到shp对象中oshp -> PutEntity, entNew;加属性;先定义属性表结构oshp->AddAttribute,"id",3,8,PRECISION=0oshp->AddAttribute,"name",7,20,PRECISION=0;获得属性表结构对象new_attr = oshp ->GetAttributes(/ATTRIBUTE_STRUCTURE)new_attr.ATTRIBUTE_0 = 1new_attr.ATTRIBUTE_1 = "river";把属性写入到shp对象中oshp -> SetAttributes,0,new_attr;这里面的0是指实体的索引值,等于entNew.ISHAPEcoor=[[116.3858622895445,39.92099455865304],$[116.3863498312803,39.91211319734286],$[116.3952884054441,39.91246510632352],$[116.3948307781919,39.92118603918453],$[116.3858622895445,39.92099455865304]]entNew.ISHAPE=1entNew.BOUNDS = [min(coor[0,*]),min(coor[1,*]),0,0,max(coor[0,*]),max(coor[1,*]),0,0]pvertice=coorentNew.VERTICES=PTR_NEW(pvertice,/no_copy)entNew.N_VERTICES = (size(coor))[2]entNew.N_Parts=2P_parts=[0,5,9]entNew.Parts=Ptr_new(P_parts,/no_copy);还要把实体写入到shp对象中oshp -> PutEntity, entNew;加属性new_attr.ATTRIBUTE_0 = 1new_attr.ATTRIBUTE_1 = "Forbidden_City";把属性写入到shp对象中oshp -> SetAttributes,1,new_attr;这里面的0是指实体的索引值,等于entNew.ISHAPEobj_destroy,oshpprint,"end"end三、获得完整示例代码行文仓促,文中的代码可能有误,撰写了3个较为完整的示例代码,放在了我的代码库中,感兴趣的话可以到googleCode上下载。下载地址为:http://code.google.com/p/datatools/source/browse/#svn/trunk/IDL/Shapefile3个示例代码的名称分别为:readshapefile.prowritepoint.prowritepolygon.pro另外,大家还从该站点获得利用IDL创建aster图像索引图的程序.四、后记用IDL处理矢量数据,始终比较复杂,能够处理的格式也有限。如果跟矢量数据大交道比较多的话,建议尝试Python

surfer 支持shapefile吗

支持。不知道你是指哪种SHPAE文件,SURFER里可以直接把用ArcGIS的SHPAE文件导入,也可以把文件导出成SHAPE文件,再由其它GIS软打开使用。如下图