MapGIS SDK(C++)
算法测试: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