mapgis6.7二次开发vc6_demo 之五(输出VCT函数之线图层)

mapgis6.7二次开发vc6_demo 之五(输出VCT函数之线图层)

// // //输出vct线坐标 version=1, topo=0 //vp:hsg //create date:2012-04-20 // // #include "stdafx.h" #include "resource.h" #include <math.h> #include "win_area.h" #include "win_oper.h" #include "map_out.h" #include "demo.h" //------------------------------------------------------- extern char* AppTitle; //应用程序名称 extern AREA_HINST AHInst; extern HWND MainWnd; //主窗口句柄 extern HWND GrpWnd; //图形窗口句柄 //------------------------------------------------------- //------------------------------------------------------------ //define function style OutVctLineBeginEnd.cpp /* bool OutVctLineBeginEnd(short *ptALst); //输出vct线坐标 */ //------------------------------------------------------------ //输出vct线坐标 OK bool OutVctLineBeginEnd(short *ptALst) { bool rbc = false; short ai; char* GeoVctType; char* FeatClassName; char* FeatureCode; char* FeatureName; //this.ShowMsg(this, "正在输出线坐标信息"); //输出线坐标 long i,j,ln; D_DOT *lxy; long len; double x,y; char* tmp; char* Lfilename; short LayerType; f_WriteLine("LineBegin"); for(int k=1;k<=ptALst[0];k++) { //获取一个工作区 ai=ptALst[k]; //获取图层类型 LayerType=_GetAreaType(ptALst[k]); if(LayerType==LIN) { //输出vct线要素几何图形 //获取线层总个数 _GetLinNum(ai,&i,&ln); //获取工作区文件名 Lfilename=_GetAreaFileName(ai); //获取图层类型 GeoVctType=GetGeoVctType(ai); // FeatClassName =getfilenameNoExt_lc(Lfilename,"\\");; FeatureCode =FeatClassName;//a3u(GeoVctType,"_",i2cp(1)); FeatureName =FeatClassName;//FeatureCode; if (GeoVctType == "Line") { long lineNum = 0; LIN_INFO inf; for(i=1;i<ln;i++) //线要素总个数 { //short WINAPI _GetLin(short ai,long li,D_DOT **dat,long *len,LIN_INFO *inf,short *dim=NULL); if(_GetLin(ai,i,&lxy,&len,&inf,NULL)<=0) { continue; } lineNum += 1; f_WriteLine(l2cp(lineNum)); //第一行序号(目标标识码) f_WriteLine(FeatureCode); //第二行要素代码 f_WriteLine(FeatureName); //第三行要素名称 f_WriteLine("1"); //第四行几何要素段类型(1=折线,2=圆弧,3=圆,4=椭圆,5=光滑曲线,6=B样条曲线,100=间接坐标) if(len>0) { f_WriteLine(l2cp(len)); //第五行点数 for(j=0;j<len;j++) //线节点j++,lxy++ { //获取地理坐标 x=lxy[j].x; y=lxy[j].y; //写入到文本中 char* x_s=d2cp(x); char* y_s=d2cp(y); tmp=a2u(x_s,","); tmp=a2u(tmp,y_s); // f_WriteLine(tmp); //第五行点坐标 } } else { //几何对象为空时 f_WriteLine("0"); //第五行点数 } if (lineNum % 100 == 0) { f_FlushFile(); } } //end for }//end if }//end LIN } //end for f_WriteLine("LineEnd"); f_WriteLine(""); f_FlushFile(); //this.ShowMsg(this, "完成输出线坐标信息"); rbc = true; return rbc; } //--the--end---

转载于:https://www.cnblogs.com/sqlite3/archive/2012/04/20/2566713.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值