⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cpp1.cpp

📁 这是书上的代码
💻 CPP
字号:
void CDZX_BMP_DRAW::InitMap()
{
	char Temp1[80],Temp2[40];
	CString strCommand,strtemp;
    
	if (!AfxOleInit())
	{
		AfxMessageBox("AfxOleInit failed");
	//	return FALSE;
	}
	if (!mapinfo.CreateDispatch("MapInfo.Application")) {
        AfxMessageBox("Failed to create MapInfo dispatch class!");
       // return false;
		}
	MapInit=true;
	memset(Temp1,'\0',80);
	sprintf(Temp1,"Open Table \"");
	strcat(Temp1,Cue1);
	memset(Temp2,'\0',40);
	sprintf(Temp2,"\" Interactive");
	strcat(Temp1,Temp2);
	mapinfo.Do(Temp1);

	memset(Temp1,'\0',80);
	sprintf(Temp1,"Map from  ");
	strcat(Temp1,Cue2);
	mapinfo.Do(Temp1);

	memset(Temp1,'\0',80);
	strcat(Temp1,"Set ");
	strcat(Temp1,ProjectionStr);
//	strcat(Temp1,"Set CoordSys Earth Projection 3,0,\"mi\",110,10,25,40,0,0");
	mapinfo.Do(Temp1);


   
	strCommand.Format("WindowID(0)");
	strtemp=mapinfo.Eval(strCommand);
	wid=atoi(strtemp);
}


void CDZX_BMP_DRAW::GreISO(BOOL ColorSet,int *Rain,long *ColorVar,int ColorCount)
{
    int VarType,RainFall,MapType,CirType,i,t;
	long LineColor;
	float FirX,FirY,SecX,SecY,OrgX,OrgY,RainValue;
	float AX,AY,BX,BY,CX,CY;
	char filename[130],Temp1[80],Temp2[200];
    BOOL ColorDefined;

	t=0;
    
    ColorDefined=false;
		   memset(CurrentDir,'\0',100);

	  ::GetCurrentDirectory(100,CurrentDir);//获取当前路径
	   
	memset(Temp2,'\0',200);
    memset(filename,'\0',130);
    strcpy(filename,CurrentDir);
    strcat(filename,"\\DZX_LAY");
    i=0;
	RainValue=0;
	strcpy(Temp2,"Create Table DZX_LAY (RainValue float) File \"");
    strcat(Temp2,filename);
	strcat(Temp2,"\"");
	strcat(Temp2," Type NATIVE");
	mapinfo.Do(Temp2);


	memset(Temp1,'\0',80);
	strcpy(Temp1,"Create Map For  DZX_LAY");
	mapinfo.Do(Temp1);

	memset(Temp1,'\0',80);
	sprintf(Temp1,"Add Map Window %d Layer DZX_LAY",wid);
	mapinfo.Do(Temp1);

	memset(Temp1,'\0',80);
	strcpy(Temp1,"Set Map Layer DZX_LAY editable on  Display Global  Global Line(1,2,65280)  Global Pen(1,2,65280)");
	mapinfo.Do(Temp1);
   


	memset(Temp1,'\0',80);
	strcpy(Temp1,"Dim  DZX_LINE as Object");
	mapinfo.Do(Temp1);



	 memset(Temp1,'\0',80);
	 strcpy(Temp1,"Set Map Layer DZX_LAY editable on Display Global  Global Line(1,2,65535)  Global Pen(1,2,65535)");
	 mapinfo.Do(Temp1);

	 memset(Temp1,'\0',80);
	 strcpy(Temp1,"Set Style Pen MakePen(1, 2,255)");

	 mapinfo.Do(Temp1);

	 memset(Temp1,'\0',80);
	 sprintf(Temp1,"Set Style Font MakeFont(\"MS Sans Serif\",0,12, %ld,%ld)",miColorBlack,miColorWhite);
	 mapinfo.Do(Temp1);

	 memset(Temp1,'\0',80);
	 strcpy(Temp1,"Dim  DZX_TEXT as Object");

	 mapinfo.Do(Temp1);

     memset(Temp1,'\0',80);
     sprintf(Temp1,"Set Style Pen MakePen(1, 2,%ld)",miColorRed);
	mapinfo.Do(Temp1);
	if(TriFlag==1)
    {
     TriData1=fopen(TriDataPath,"r");
     for(i=0;i<m_nTris;i++)
	 {
      fscanf(TriData1,"%f,%f,%f,%f,%f,%f\n",&AX,&AY,&BX,&BY,&CX,&CY);
      memset(Temp1,'\0',80);
	  sprintf(Temp1,"%s%f,%f,%f,%f))","Insert Into DZX_LAY(obj) Values (CreateLine(",AX,AY,BX,BY);
	           mapinfo.Do(Temp1);
	  memset(Temp1,'\0',80);
	  sprintf(Temp1,"%s%f,%f,%f,%f))","Insert Into DZX_LAY(obj) Values (CreateLine(",BX,BY,CX,CY);
	           mapinfo.Do(Temp1);
	  memset(Temp1,'\0',80);
	  sprintf(Temp1,"%s%f,%f,%f,%f))","Insert Into DZX_LAY(obj) Values (CreateLine(",CX,CY,AX,AY);
	           mapinfo.Do(Temp1);

	 }
     fclose(TriData1);
	}

	DZXData=fopen(DZXDataPath,"r");
    memset(Temp1,'\0',80);
//  sprintf(Temp1,"Set Style Pen MakePen(1, 2,%ld)",LineColor);

	sprintf(Temp1,"Set Style Pen MakePen(2,2,%ld)",miColorBlue);
    mapinfo.Do(Temp1);

	while(!feof(DZXData))
	{
		  if(!feof(DZXData))
	 fscanf(DZXData,"%d",&VarType);
		  else break;
     switch(VarType)
	 {
	  case COLORFLAG:
		  if(!feof(DZXData))
           fscanf(DZXData,",%d\n",&RainFall);
		  else
			  break;
		   
		   if(ColorSet)
		   {
			for(i=0;i<ColorCount;i++)
			{
             if(Rain[i]==RainFall)
			 {
				 LineColor=ColorVar[i];
				 break;
				 ColorDefined=true;
			 }
			}
		   }
           
		   if(!ColorDefined)
		   {
            if(t>ColorNum-1)
               t=0;
            LineColor=ColorDefault[t];
			t++;
		   }


		   memset(Temp1,'\0',80);
		 //  sprintf(Temp1,"Set Style Pen MakePen(1, 2,%ld)",LineColor);
		   sprintf(Temp1,"Set Style Pen MakePen(2,2,%ld)",miColorBlue);
		   mapinfo.Do(Temp1);
		   break;
	  case CIRCLEFLAG:
		  if(!feof(DZXData))
		   fscanf(DZXData,",%d,%d\n",&MapType,&CirType);
		  else  break;
		  if(!feof(DZXData))
           fscanf(DZXData,"%d",&VarType);
		  		 else break;

		   if((VarType==COODFLAG)||(VarType==9))
		   {
			   		  if(!feof(DZXData))

			   fscanf(DZXData,",%f,%f\n",&FirX,&FirY);
					  else
						  break;
		   }
		   		  if(!feof(DZXData))

           fscanf(DZXData,"%d",&VarType);
				  else break;
           OrgX=FirX;
		   OrgY=FirY;
		   while((VarType==COODFLAG)||(VarType==9))
		   {
			   		  if(!feof(DZXData))

			   fscanf(DZXData,",%f,%f\n",&SecX,&SecY);
					  else break;
			   memset(Temp1,'\0',80);
			   if(Between(MinDX,MaxDX,FirX)&&Between(MinDY,MaxDY,FirY)&&Between(MinDX,MaxDX,SecX)&&Between(MinDY,MaxDY,SecY))
			   {
				   sprintf(Temp1,"%s%f,%f,%f,%f))","Insert Into DZX_LAY(obj) Values (CreateLine(",FirX,FirY,SecX,SecY);
				   mapinfo.Do(Temp1);
			   }
			   FirX=SecX;
			   FirY=SecY;
			   		  if(!feof(DZXData))

			   fscanf(DZXData,"%d",&VarType);
					  else break;

		   }
		   if(CirType==CLOSE)
		   {
             memset(Temp1,'\0',80);
		     if(Between(MinDX,MaxDX,FirX)&&Between(MinDY,MaxDY,FirY)&&Between(MinDX,MaxDX,OrgX)&&Between(MinDY,MaxDY,OrgY))
			 {
			   sprintf(Temp1,"%s%f,%f,%f,%f))","Insert Into DZX_LAY(obj) Values (CreateLine(",FirX,FirY,OrgX,OrgY);
	           mapinfo.Do(Temp1);
			 }
			 CirType=OPEN;
		   }
           
		   break;
	 }
    }
	fclose(DZXData);


	DZXText=fopen(DZXTextPath,"r");

	while(!feof(DZXText))
	{
	fscanf(DZXText,"%d,%f,%f\n",&RainFall,&FirX,&FirY);
    memset(Temp1,'\0',80);
  /* if(RainFall==9)
	sprintf(Temp1,"Create text into Window %d  \"●\"  (%f,%f) (%f,%f) Font MakeFont(\"宋体\",0,990, %ld,%ld)",wid,FirX+3,FirY+3,FirX-2,FirY-2,miColorBlack,miColorWhite);
   else if(RainFall==7)
	sprintf(Temp1,"Create text into Window %d  \"◢\"  (%f,%f) (%f,%f) Font MakeFont(\"宋体\",0,990, %ld,%ld)",wid,FirX+3,FirY+3,FirX-2,FirY-2,miColorBlack,miColorWhite);
    else*/

	if(RainFall>500)
    sprintf(Temp1,"Create text into Window %d  \"%d\"  (%f,%f) (%f,%f) Font MakeFont(\"宋体\",0,%d, %ld,%ld)",wid,RainFall,FirX,FirY,FirX-2*FontRatio,FirY-2*FontRatio,FontSize,miColorBlack,miColorWhite);
    else
    sprintf(Temp1,"Create text into Window %d  \"%d\"  (%f,%f) (%f,%f) Font MakeFont(\"宋体\",0,%d, %ld,%ld)",wid,RainFall,FirX+2*FontRatio,FirY+2*FontRatio,FirX,FirY,FontSize,miColorBlack,miColorWhite);
	mapinfo.Do(Temp1);
	}

	fclose(DZXText);
	   
	memset(Temp1,'\0',80);
//	sprintf(Temp1,"Commit Table DZX_LAY As \"%s\"  Type NATIVE CoordSys Earth ",ISOName);
//  strcat(Temp1," Projection 3,0,\"mi\",110,10,25,40,0,0");
	sprintf(Temp1,"Commit Table DZX_LAY As \"%s\"  Type NATIVE  ",ISOName);
    strcat(Temp1,ProjectionStr);
	mapinfo.Do(Temp1);


	memset(Temp1,'\0',80);
	strcat(Temp1,"Close All");
	mapinfo.Do(Temp1);


	//fclose(DZXData);
	//fclose(DZXText);
	
}

void CDZX_BMP_DRAW::ReleaseMap()
{

	mapinfo.ReleaseDispatch();
	mapinfo.m_lpDispatch=NULL;

	

	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -