MapGIS SDK(C++)

时间:2019-04-04 16:50:32   收藏:0   阅读:358

技术分享图片

技术分享图片

算法测试:Demo、Test

https://www.cnblogs.com/2008nmj/p/10060847.html

//例1-1 简单要素
void AppendSFeature(CSFeatureCls *ptSFCls)
{
CAnyLine line; // 任意线(几何实体)
CRecord linAtt; // 属性
LIN_INFO linInfo; // 图形参数
memset(&linInfo,0,sizeof(LIN_INFO));
CATT_STRU attStru;

//设置要素属性
ptSFCls->att_GetStru(attStru);
linAtt.SetStru(attStru);
for(int i = 0;i<attStru.hd.numbfield;i++)
linAtt.SetFldFromStr(i,"Zondy");

//设置要素几何形态
line.m_linType = ARC_TYPE_BROKEN_LINE;
D_DOT* dotset = new D_DOT[2];
dotset[0].x = 0; dotset[0].y = 0;
dotset[1].x = 50; dotset[1].y = 50;
line.m_varLin.Set(dotset,2);
linInfo.linstyID = 6;

//在简单要素类里添加要素
TYPE_LIN_ID SfeaID = ptSFCls->line_Append(&line,&linAtt,&linInfo);
delete []dotset;
}

//例1-2 几何封装类
CMultiLine ptMultLin;
D_DOT dot[2];

CGeomBasePTR *ptLine;
ptLine = new CGeomBasePTR[2];

dot[0].x = 0; dot[0].y = 0;
dot[1].x = 0; dot[1].y = 100;
ptLine[0] = new CAnyLine;
ptLine[1] = new CAnyLine;
((CAnyLine*)ptLine[0])->m_varLin.Append(dot,2);
dot[0].x = 0; dot[0].y = 100;
dot[1].x = 100; dot[1].y = 100;
((CAnyLine*)ptLine[1])->m_varLin.Append(dot,2);

ptMultLin.Set(ptLine,2);

delete (CAnyLine*) ptLine[0];
delete (CAnyLine*) ptLine[1];
delete []ptLine;

例2-1 创建基于文件的地理数据库
void OnCreateGdb(){
CGDataBase* GDateBase;
CGDBServer* ptWA;
char szName[] = "My TestGDB";
HDF_CREATE_MSG Msg;

memset(&Msg,0,sizeof(HDF_CREATE_MSG));
strcpy(Msg.HDFName,"D:\\MyTestGDB");
Msg.extendInfo.extendMode = 0;
Msg.extendInfo.isExtendable = 1;
Msg.extendInfo.maxFileSize = 0;
Msg.size = 10;

ptWA = new CGDBServer;
GDateBase = new CGDataBase;

if(ptWA->Connect("MapGisLocal")>0)
GDateBase->Create(ptWA,szName,&Msg,1);
ptWA->Disconnect();

delete ptWA; ptWA = NULL;
delete GDateBase; GDateBase = NULL;
}

MapGIS三维开发类库:

原文:https://www.cnblogs.com/2008nmj/p/10655284.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!