资源描述:
《MAPGIS空间数据存取和属性编辑.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、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_Get
2、Lin(shortai,longli,D_DOT**dat,long*len,LIN_INFO*inf);注意:线坐标序列所占据的内存是由工作区管理模块来申请的!如果是在同一个工作区中连续调用两次_GetLin,第一次返回的线坐标序列被释放掉!示例:从给定的ai号工作区中读取所有线longi,linN;longlen;LIN_INFOlinf;D_DOT*lxy;//取线实体数,i返回逻辑数,linN返回物理数。_GetLinNum(ai,&i,&linN);for(i=1;i3、&linf)<=0)continue;//略过被删除的线//处理线实体代码//……}获取线图形信息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工作区线
4、实体操作示例:添加一条折线,颜色为绿色,坐标点为(0,0),(100,0),(100,100);LIN_INFOinf;D_DOTxy[3];xy[0].x=0;xy[0].y=0;xy[1].x=100;xy[1].y=0;xy[2].x=100;xy[2].y=100;memset(&inf,0,sizeof(LIN_INFO));//由于struct没有构造函数,需要初始化为0inf.ltp=1;//线型号inf.lclr=7;//线颜色inf.lw=1;//线宽_AppendLin(ai,xy,3,&inf);1.1工作区线实体操作取点short_GetPnt
5、(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;chardat[64];xy.x=500;xy.
6、y=500;lstrcpy(dat,”MAPGIS”);memset(&inf,0,sizeof(PNT_INFO));inf.type=PNT_NOTE;inf.info.ch.height=10;inf.info.ch.width=10;inf.iclr=6;_AppendPnt(ai,&xy,dat,lstrlen(dat),&inf);1.2工作区点实体操作1.3工作区区实体操作取区域short_GetReg(shortai,longri,long**rdat,short*len,REG_INFO*inf);添加区实体long_AppendReg(shorta
7、i,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_DOTdat[5];LIN_INFOinf={0};longrdat[2];m_ai=_OpenArea(m_hInst,REG);dat[0].x=10;dat