kiwi路网.docx

上传人:b****1 文档编号:13223396 上传时间:2023-06-12 格式:DOCX 页数:31 大小:964.90KB
下载 相关 举报
kiwi路网.docx_第1页
第1页 / 共31页
kiwi路网.docx_第2页
第2页 / 共31页
kiwi路网.docx_第3页
第3页 / 共31页
kiwi路网.docx_第4页
第4页 / 共31页
kiwi路网.docx_第5页
第5页 / 共31页
kiwi路网.docx_第6页
第6页 / 共31页
kiwi路网.docx_第7页
第7页 / 共31页
kiwi路网.docx_第8页
第8页 / 共31页
kiwi路网.docx_第9页
第9页 / 共31页
kiwi路网.docx_第10页
第10页 / 共31页
kiwi路网.docx_第11页
第11页 / 共31页
kiwi路网.docx_第12页
第12页 / 共31页
kiwi路网.docx_第13页
第13页 / 共31页
kiwi路网.docx_第14页
第14页 / 共31页
kiwi路网.docx_第15页
第15页 / 共31页
kiwi路网.docx_第16页
第16页 / 共31页
kiwi路网.docx_第17页
第17页 / 共31页
kiwi路网.docx_第18页
第18页 / 共31页
kiwi路网.docx_第19页
第19页 / 共31页
kiwi路网.docx_第20页
第20页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

kiwi路网.docx

《kiwi路网.docx》由会员分享,可在线阅读,更多相关《kiwi路网.docx(31页珍藏版)》请在冰点文库上搜索。

kiwi路网.docx

kiwi路网

Kiwi路网存储是类似金字塔的结构,

定义1.分包(dividedpacel|regularparcels).包含同种性质特征的集合.

定义2.包(pacel).一种组织数据的方式,为矩形区域,内含各种数据,划分规则包就是按层级进行网格化的过程.

定义3.域(region).一种组织数据的方式,为多边形,内含各种数据.

定义4.块(block).一种组织数据的方式,为矩形,内含各种数据.

定义5.块集(blockset).一种组织数据的方式,为矩形,内含各种数据.

定义6.级别(level).即为不同的比例尺.

 

/**

*AllDataManagementFrame

*@seeKiwiFormatSpecificationVer.1.22[5]

*/

typedefstructtagALLDATMANFRM{

UCHARucSysRestrIndent[64];//System-specificIdentification

UCHARucAuthIndent[64];//DataauthorIdentification

UCHARucSysIndent[32];//SystemIdentification

UCHARucFormatVer[64];//FormatVersionNumber

UCHARucDataVer[64];//DataVersionNumber

UCHARucDiskTitle[128];//DiskTitle

UCHARucDataContents[8];//DataContents

UCHARucMediaVer[32];//MediaVersionNumber

UCHARucDataArea[16];//DataCoverage

USHORTusLogiBlkSize;//LogicalSectorSize

USHORTusSectorSize;//SectorSize

UCHARucBGDefInfo[2];//BackgroundDataDefaultInformation

ST_LVLMANINFORstLvlManInfor;//LevelManagementInformation

ST_MANHEADRECstManHeadRec[7];//ASequenceofManagementHeaderTables

//ExtentedData

ST_HIGHWAY_MAPDATstHighwayMapData;//HighWayMapData

}ST_ALLDATMANFRM,*PST_ALLDATMANFRM;

Alldataframe指向PacelData

LevelManagementDistributionHeader

/**

*ParcelDataManagementDistributionHeader

*@seeKiwiFormatSpecificationVer.1.22[6.1]

*/

typedefstructDNA_EXPORTtagPCLDATMANFRM{

//UCHARucFileNmDesFlag:

1;//FileNameDesignationFlag

UCHARucSignUp:

1;//North/SouthFlag

UCHARucSignDown:

1;//North/SouthFlag

UCHARucSignLeft:

1;//East/WestFlag

UCHARucSignRight:

1;//East/WestFlag

USHORTusLvlManRecCnt;//TotalNumberofLevelManagementRecords

/*

USHORTusBlkSetManRecCnt;//*TotalNumberofBlockSetManagementRecords

ULONGulHeadSize;//*HeaderSize

*/

ULONGulAllUpCoor;//Longitude/Latitude(inunitsof1/8seconds)

ULONGulAllDownCoor;//Longitude/Latitude(inunitsof1/8seconds)

ULONGulAllLeftCoor;//Longitude/Latitude(inunitsof1/8seconds)

ULONGulAllRightCoor;//Longitude/Latitude(inunitsof1/8seconds)

/*

ULONGulLvlManRecSize;//*SizeofLevelManagementRecord

ULONGulBlkSetManRecSize;//*SizeofBlockSetManagementRecord

ULONGulBlkManRecSize;//*SizeofBlockManagementRecord

*/

PST_PCLLVLMANRECpstPclLvlManRec;//ASequenceofLevelManagementRecords

tagPCLDATMANFRM(){

usLvlManRecCnt=0;

pstPclLvlManRec=NULL;

}

INTNewPclDatManFrm(){

if(usLvlManRecCnt>0){

pstPclLvlManRec=newST_PCLLVLMANREC[usLvlManRecCnt];

if(pstPclLvlManRec==NULL){

returnFAIL;

}

}

returnSUCCESS;

}

~tagPCLDATMANFRM(){

delete[]pstPclLvlManRec;

}

}ST_PCLDATMANFRM,*PST_PCLDATMANFRM;

LevelManagementrecord

/**

*LevelManagementRecord

*@seeKiwiFormatSpecificationVer.1.22[6.1.1]

*/

typedefstructtagPCLLVLMANREC{

CHARch6LvlID:

6;//LevelNumber

//USHORTus04IntCnt:

4;//*NumberofRegularParcelsIntegratedontheNext-higherLevel

//USHORTus04DivCnt:

4;//*NumberofRegularParcelsDividedontheNext-lowerLevel

USHORTus05MainMapBasDatFrmRecCnt:

5;//NumberofBasicDataFrameManagementRecordsofMainMapDataFrame

USHORTus05MainMapExtDatFrmRecCnt:

5;//NumberofExtendedDataFrameManagementRecordsofMainMapDataFrame

USHORTus05RoutGuidBasDatFrmRecCnt:

5;//NumberofBasicDataFrameManagementRecordsofRouteGuidanceDataFrame

USHORTus05RoutGuidExtDatFrmRecCnt:

5;//NumberofExtendedDataFrameManagementRecordsofRouteGuidanceDataFrame

USHORTusPclDivCntX[3];//NumberofLongitudinalParcelsdivided(Type1,2,3)

USHORTusPclDivCntY[3];//NumberofLatitudinalParcelsdivided(Type1,2,3)

ULONGul09BlkSetCntX:

9;//NumberofLongitudinalBlockSets

ULONGul09BlkSetCntY:

9;//NumberofLatitudinalBlocksSets

ULONGul09BlkCntX:

9;//NumberofLongitudinalBlocks

ULONGul09BlkCntY:

9;//NumberofLatitudinalBlocks

ULONGul09PclCntX:

9;//NumberofLongitudinalParcels

ULONGul09PclCntY:

9;//NumberofLatitudinalParcels

ULONGulRuler[5];//DisplayScaleFlag(1-5)

ULONGulNodeRecSize;//NodeRecordSize

//ULONGulBlkSetHeadOffset;//OffsettotheTopoftheBlockSetManagementRecords

PST_PCLBLKSETMANRECpstPclBlkSetManRec;//ASequenceofBlockSetManagementRecords

ST_DISPCLSstDispCls;//DisplayClasses

tagPCLLVLMANREC(){

ul09BlkSetCntX=0;

ul09BlkSetCntY=0;

pstPclBlkSetManRec=NULL;

}

INTNewPclLvlManRec(){

if(ul09BlkSetCntX*ul09BlkSetCntY>0){

pstPclBlkSetManRec=newST_PCLBLKSETMANREC[ul09BlkSetCntX*ul09BlkSetCntY];

if(pstPclBlkSetManRec==NULL){

returnFAIL;

}

}

returnSUCCESS;

}

~tagPCLLVLMANREC(){

delete[]pstPclBlkSetManRec;

}

}ST_PCLLVLMANREC,*PST_PCLLVLMANREC;

(1)头结构中包含该层level号,以及和上下level的对应包的融合关系

(5)记录着BasicDataFrameManagement数目,它包含如下我们需求框架

Blocksetmanagementrecord

/**

*BlockSetManagementRecord

*@seeKiwiFormatSpecificationVer.1.22[6.1.2]

*/

typedefstructtagPCLBLKSETMANREC{

//CHARcLvlID;//*LevelNumber

UCHARucBlkSetID;//BlockSetNumber

//ULONGulBlkManTblOffset;//OffsettoBlockManagementTable

//ULONGulBlkManTblSize;//SizeofBlockManagementTable

PST_PCLBLKMANRECpstPclBlkManRec;//ASequenceofBlockManagementRecords

tagPCLBLKSETMANREC(){

pstPclBlkManRec=NULL;

}

INTNewPclBlkSetManRec(inta_iBlkCnt){

if(a_iBlkCnt>0){

pstPclBlkManRec=newST_PCLBLKMANREC[a_iBlkCnt];

if(pstPclBlkManRec==NULL){

returnFAIL;

}

}

returnSUCCESS;

}

~tagPCLBLKSETMANREC(){

delete[]pstPclBlkManRec;

pstPclBlkManRec=NULL;

}

}ST_PCLBLKSETMANREC,*PST_PCLBLKSETMANREC;

Blocksetnumber表示的是在上述描述的coveragearea中该blockset的编号因为level数据都是按块存储,这个值不大于255

Offset指向下级block地址

/**

*BlockManagementRecord

*@seeKiwiFormatSpecificationVer.1.22[6.2.1]

*/

typedefstructtagPCLBLKMANREC{

ULONGulPclManInfoAddr;//AddressofParcelManagementInformation

ULONGulPclManInfoSize;//SizeofParcelManagementInformation

CHARcPclManInfoFileName[12];//FilenameofParcelManagementInformation

}ST_PCLBLKMANREC,*PST_PCLBLKMANREC;

在这个addr到parcelmanagementinformation的代码中出现问题,一直没有解决,通过给地址获取的信息不对,

/**

*ParcelManagementInformation

*@seeKiwiFormatSpecificationVer.1.22[6.3]

*/

typedefstructtagPCLMANINFO{

UCHARuc2PclManCntTypeID:

2;//ParcelsTypeNumbergivenbytheNumberofManagedParcels

UCHARucPclManListTypeID:

8;//ParcelManagementListTypeNumber

ULONGulGuidePclManListOffset;//OffsettoRouteGuidanceParcelManagementList

PST_PCLMANRECpstPclManRec;//MainMapParcelManagementList

PST_PCLMANRECpstGuideManRec;//RouteGuidanceParcelManagementList

tagPCLMANINFO(){

pstPclManRec=NULL;

pstGuideManRec=NULL;

}

INTNewPclManInfo(inta_iPclManListCnt,inta_iRoutGuidManListCnt){

if(a_iPclManListCnt>0){

pstPclManRec=newST_PCLMANREC[a_iPclManListCnt];

if(pstPclManRec==NULL){

returnFAIL;

}

}

if(a_iRoutGuidManListCnt>0){

pstGuideManRec=newST_PCLMANREC[a_iRoutGuidManListCnt];

if(pstGuideManRec==NULL){

returnFAIL;

}

}

returnSUCCESS;

}

~tagPCLMANINFO(){

delete[]pstPclManRec;

delete[]pstGuideManRec;

}

}ST_PCLMANINFO,*PST_PCLMANINFO;

分四种情况去找MainMapdataFrame(还没弄明白这四种情况什么意思)Routguidance类似

/**

*MainMapParcelManagementRecord

*@seeKiwiFormatSpecificationVer.1.22[6.3.1]

*/

typedefstructtagPCLMANREC{

ULONGulMMapDatFrmAddr;//FirstAddressofMainMapDataFrame(Parcel)

ULONGulMMapDatFrmSize1;//Size1ofMainMapDataFrame(ParcelManagementTypeNumberis0,1,2,100)

ULONGulMMapDatFrmSize2;//Size2ofMainMapDataFrame(ParcelManagementTypeNumberis1,2)

CHARchMMapDatFrmFileName[12];//FileNameofMainMapDataFrame(ParcelManagementTypeNumberis100)

}ST_PCLMANREC,*PST_PCLMANREC;

/**

*MainMapDataFrame

*@seeKiwiFormatSpecificationVer.1.22[7.1]

*/

typedefstructtagMAINMAPDATFRM{

UCHARucReadFlag;//bit0RoadDataFrame(0:

notRead1:

haveRead)

//bit1BackgroundDataFrmae(0:

notRead1:

haveRead)

//bit2NameDataFrame(0:

notRead1:

haveRead)

//bit3DistributionHead(0:

notRead1:

haveRead)

ST_MAINMAPDHstMainMapDH;//MainMapDistributionHeader

ST_ROADDATFRMstRoadDatFrm;//RoadDataFrame

ST_BGDATFRMstBGDatFrm;//BackgroundDataFrame

ST_NAMEDATFRMstNameDatFrm;//NameDataFrame

//AdditionalDataAFrame

//AdditionalDataBFrame

}ST_MAINMAPDATFRM,*PST_MAINMAPDATFRM;

/**

*RoadDataFrame

*@seeKiwiFormatSpecificationVer.1.22[7.2]

*/

typedefstructtagROADDATFRM{

//CHARcRgnLvlID;//*LevelofRoutePlanningDataCorrespondingtoParcelData

UCHARucDispClsCnt;//NumberofDisplayClasses

//UCHARucAddDatCnt;//*CountofAdditionalData

//USHORTusIntSecCnt;//*TotalNumberofIntersections

//ULONGulHeadSize;//*HeaderSize

PST_DISPCLSRECpstDispClsRec;//ASequenceofDisplayClassManagementRecords

//PST_PASCODEDATFRMpstPasCodeDatFrm;//PassageCodeDataFrame

//PST_COMPNODEDATFRMpstCompNodeDatFrm;//CompositeNodeDataFrame

tagROADDATFRM(){

pstDispClsRec=NULL;

ucDispClsCnt=0;

//pstPasCodeDatFrm=NULL;

//pstCompNodeDatFrm=NULL;

}

INTNewRoadDatFrm(){

if(ucDispClsCnt>0){

pstDispClsRec=newST_DISPCLSREC[ucDispClsCnt];

if(pstDispClsRec==NULL){

returnFAIL;

}

}

returnSUCCESS;

}

~tagROADDATFRM(){

delete[]pstDispClsRec;

//deletepstPasCodeDatF

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2