MAPGIS空间数据存取和属性编辑.ppt_第1页
MAPGIS空间数据存取和属性编辑.ppt_第2页
MAPGIS空间数据存取和属性编辑.ppt_第3页
MAPGIS空间数据存取和属性编辑.ppt_第4页
MAPGIS空间数据存取和属性编辑.ppt_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MAPGIS空间数据存取和属性编辑,1.空间实体操作,2.属性(属性结构)操作,1.1线实体操作1.2点实体操作1.3区实体操作,第二讲空间数据存取和属性编辑,2.2属性结构操作,2.1属性结构和属性的关系,2.3属性记录操作,2.4字段操作,相关头文件Win_area.h,取线工作区实体个数,short_GetLinNum(shortai,long*logN,long*n);参数:入口ai-工作区号出口*logN-返回逻辑数,即未被删除的图元数*n-返回物理数(物理数=逻辑数+被删除图元数+1)返回值1/0-成功/失败,1.1工作区线实体操作,1.1工作区线实体操作,取线实体short_GetLin(shortai,longli,D_DOT*dat,long*len,LIN_INFO*inf);,注意:线坐标序列所占据的内存是由工作区管理模块来申请的!如果是在同一个工作区中连续调用两次_GetLin,第一次返回的线坐标序列被释放掉!,示例:从给定的ai号工作区中读取所有线longi,linN;longlen;LIN_INFOlinf;D_DOT*lxy;/取线实体数,i返回逻辑数,linN返回物理数。_GetLinNum(ai,/略过被删除的线/处理线实体代码/,获取线图形信息short_GetLinInfo(shortai,longli,LIN_INFO*inf);,添加线到线工作区long_AppendLin(shortai,D_DOT*dat,longlen,LIN_INFO*inf);,更新线图形信息short_UpdateLinInfo(shortai,longli,LIN_INFO*inf);,更新线short_UpdateLin(shortai,longli,D_DOT*dat,longlen,LIN_INFO*inf);,1.1工作区线实体操作,示例:添加一条折线,颜色为绿色,坐标点为(0,0),(100,0),(100,100);LIN_INFOinf;D_DOTxy3;xy0.x=0;xy0.y=0;xy1.x=100;xy1.y=0;xy2.x=100;xy2.y=100;memset(,1.1工作区线实体操作,取点short_GetPnt(shortai,longpi,D_DOT*xy,char*dat,short*len,PNT_INFO*inf);,取点图形信息short_GetPntInfo(shortai,longpi,PNT_INFO*inf);,添加点long_AppendPnt(shortai,D_DOT*xy,char*dat,shortlen,PNT_INFO*inf);,1.2工作区点实体操作,示例:添加一个字符串类型的点,坐标为(100,100),内容为“MAPGIS”,颜色为红色,字高宽均为10,PNT_INFOinf;D_DOTxy;chardat64;xy.x=500;xy.y=500;lstrcpy(dat,”MAPGIS”);memset(,1.2工作区点实体操作,1.3工作区区实体操作,取区域short_GetReg(shortai,longri,long*rdat,short*len,REG_INFO*inf);,添加区实体long_AppendReg(shortai,long*rdat,shortlen,REG_INFO*inf);,获取区实体图形信息short_GetRegInfo(shortai,longri,REG_INFO*inf);,删除区实体short_DelReg(shortai,longri);,恢复被删除的区实体short_UnDelReg(shortai,longri);,longri;REG_INFOrInf=0;longli;D_DOTdat5;LIN_INFOinf=0;longrdat2;m_ai=_OpenArea(m_hInst,REG);dat0.x=10;dat0.y=10;dat1.x=100;dat1.y=10;dat2.x=100;dat2.y=100;dat3.x=10;dat3.y=100;dat4.x=10;dat4.y=10;inf.lclr=5;inf.ltp=1;inf.lw=0.5;li=_AppendLin(m_ai,dat,5,1.3工作区区实体操作,示例:添加区,2属性(属性结构)操作,2.2属性结构操作,2.3属性记录操作,2.4字段操作,2.1属性结构和属性的关系,2.1属性结构和属性的关系,属性结构和属性的关系,Field,Att,Field_Head,取某类属性结构short_GetAttStru(shortai,shorttype,CATT_STRU*stru);,设置某类属性结构short_SetAttStru(shortai,shorttype,CATT_STRU*stru);,说明:若要修改、浏览属性结构,建议使用函数_EditAttStruct、_EditStruct、,添加字段到某类属性结构中short_AppendStruFld(shortai,shorttype,shortfldn,CFIELD_HEAD*fldEntry);,2.2属性结构操作,说明:该函数对要添加的字段名进行检查,若在原有字段中存在同名字段,则不添加同名的新字段。,示例:向给定的ai号点工作区的点属性结构添加字符串类型,长度为64的字段“MAPGIS”。CFIELD_HEADfldEntry;lstrcpy(fldEntry.fieldname,“MAPGIS”);fldEntry.fieldtype=STR_TYPE;fldEntry.ptc_pos=-1;/新字段必须是-1fldEntry.msk_leng=64;_AppendStruFld(ai,PNT,1,2.2属性结构操作,取某类属性short_GetAtt(shortai,shortatype,longi,CATT_STRU*stru,char*att);,写某类实体属性short_WriteAtt(shortai,shortatype,longi,CATT_STRU*stru,char*att);,编辑属性HWND_EditAtt(HWNDhWnd,AREA_HINSTahInst,DWORDdwStyle=0);,2.3属性记录操作,2.4字段操作,根据字段名称取字段值,short_GetField(char*att,CATT_STRU*stru,char*fldName,char*fldBuf,longbufLen,short*isBlank);,根据字段序号取字段值,short_GetFieldOnNumb(char*att,CATT_STRU*stru,shortfldi,char*fldBuf,longbufLen,short*isBlank);,根据字段名称设置字段值,short_SetFld(char*att,CATT_STRU*stru,char*fldName,char*realVal);,说明:该函数仅仅把realVal值写到att所指内存空间上,若要永久修改属性字段值,还必须调用_WriteAtt函

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论