亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? geoobj.cpp

?? GemoMedia 應用 演示了其使用方法
?? CPP
字號:
// GeoObj.cpp: implementation of the CGeoObj class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "SvfToGeoMedia.h"
#include "GeoObj.h"
#include "ADOConn.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif


extern CString GetFieldStr(char* str,ADODB::_RecordsetPtr pDS);
extern void SendMsg(CString str);

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CGeoObj::CGeoObj():m_nID(-1),m_strGeoCode(""),m_strTable("")
,m_strType("")
{
	m_pADOConn=NULL;
}

CGeoObj::~CGeoObj()
{

}


//寫地理對象到數據庫
bool CGeoObj::WriteGeoObjToDataBase()
{


	//創建地理對象
	//IDispatch* objGeom;
	_DGMOrientedPointGeometryPtr ptrOrientPoint;
	_DGMPolylineGeometryPtr ptrLine;
	_DGMPolygonGeometryPtr ptrPolygon;
	_DGMTextPointGeometryPtr ptrTextPoint;

	m_strTable.TrimLeft() ;
	m_strTable.TrimRight();
	m_strType.MakeUpper();

	if (m_strType=="POINT")
	{
		//_DGMOrientedPointGeometryPtr ptrOrientPoint;
		ptrOrientPoint.CreateInstance(__uuidof(OrientedPointGeometry));

		ptrOrientPoint->Orientation->I = 1;
		ptrOrientPoint->Orientation->J= 0;
		ptrOrientPoint->Orientation->K= 0;		
		
		Node node = *m_PosList.begin();
		ptrOrientPoint->Origin->X =node.fPosX;
		ptrOrientPoint->Origin->Y =node.fPosY;
		ptrOrientPoint->Origin->Z =node.fPosH;	
		
		//objGeom = ptrOrientPoint;
	}
	
	//線
	if (m_strType=="LINE")
	{
		//_DGMPolylineGeometryPtr ptrLine;
		ptrLine.CreateInstance(__uuidof(PolylineGeometry));
		
		for(list<Node>::const_iterator item = m_PosList.begin();item!= m_PosList.end();item++)
		{
			Node node = *item;
			_DGMPointPtr pPoint;
			pPoint.CreateInstance("GeoMedia.Point");
			pPoint->X = node.fPosX;
			pPoint->Y = node.fPosY;
			pPoint->Z = node.fPosH;
			
			ptrLine->Points->Add(pPoint);
		}
		//objGeom = ptrLine;
	}

	//面
	if (m_strType=="POLYGON")
	{		
		//_DGMPolygonGeometryPtr ptrPolygon;
		ptrPolygon.CreateInstance(__uuidof(PolygonGeometry));
		
		for(list<Node>::const_iterator item = m_PosList.begin();item!= m_PosList.end();item++)
		{
			Node node = *item;
			_DGMPointPtr pPoint;
			pPoint.CreateInstance("GeoMedia.Point");
			pPoint->X = node.fPosX;
			pPoint->Y = node.fPosY;
			pPoint->Z = node.fPosH;
			
			ptrPolygon->Points->Add(pPoint);
		}
		
		//最后加入起點
		Node Nodefirst = *m_PosList.begin();
		_DGMPointPtr pPoint;
		pPoint.CreateInstance("GeoMedia.Point");
		pPoint->X = Nodefirst.fPosX;
		pPoint->Y = Nodefirst.fPosY;
		pPoint->Z = Nodefirst.fPosH;

		ptrPolygon->Points->Add(pPoint);

		//objGeom = ptrPolygon;
	}

	//注記
	if (m_strType=="ANNO")
	{
		//_DGMTextPointGeometryPtr ptrTextPoint;
		ptrTextPoint.CreateInstance(__uuidof(TextPointGeometry));

		Node node = *m_PosList.begin();

		ptrTextPoint->Origin->X = node.fPosX;
		ptrTextPoint->Origin->Y = node.fPosY;
		ptrTextPoint->Origin->Z = node.fPosH;

		ptrTextPoint->Alignment = gmaBottomLeft;
		ptrTextPoint->Normal->I = 0;
		ptrTextPoint->Normal->J = 0;
		ptrTextPoint->Normal->K = 1;
		
		//注記內容
		CString strcontext("");
		//字高
		double  dfontH=0;
		//轉角
		double dfontR =0;
		//字體
		CString strFont("");
		   
		for (list<Attr>::const_iterator item = m_AttrList.begin(); item!= m_AttrList.end();item++)
		{
			Attr attr = *item;
			CString strAttrName(attr.strAttrName.c_str());
			if (strAttrName == "注記")
				strcontext = attr.strAttr.c_str();

			if (strAttrName == "字高")
				dfontH = atof(attr.strAttr.c_str());

			if (strAttrName =="轉角")
				dfontR = atof(attr.strAttr.c_str());

			if (strAttrName =="字體")
				strFont = attr.strAttr.c_str();
		}

		if (ptrTextPoint->Format == 0 )
		{
			ptrTextPoint->RichText = _bstr_t(strcontext);
		}
		else
		{
			ptrTextPoint->text = _bstr_t(strcontext);
		}
		
		ptrTextPoint->Rotation = dfontR;
		
		//objGeom = ptrTextPoint;
	}
	
	//添加地理對象到數據表中
	//訪問數據庫
	OriginatingPipePtr ptrOrigPipe;
	m_ptrDVIConnection->CreateOriginatingPipe(&ptrOrigPipe);
	ptrOrigPipe->put_GeometryFieldName(_variant_t("Geometry"));
	ptrOrigPipe->put_Table(_bstr_t(m_strTable));
				
	GRecordsetPtr ptrAddRs;
	ptrOrigPipe->get_OutputRecordset(&ptrAddRs);
		
	////////////////////////////////////////////////////////////////
	//取得目前最大記錄
	long temp_v=0;
	if (!ptrAddRs->_EOF)
	{
		ptrAddRs->MoveLast();
		for(int i = 0;i < ptrAddRs->GFields->Count;i++)
		{
			BSTR fieldname;
			ptrAddRs->GFields->Item[(long)i]->get_Name(&fieldname);
			CString strfieldname = fieldname;
			//if(strfieldname == "GMIPrimaryKey") 
			if(strfieldname == "ID") 
				temp_v = ptrAddRs->GFields->Item[(long)i]->Value;
		}
	}
	
	temp_v++;
	
	list<Attr>::const_iterator item_attr = m_AttrList.begin();

	ptrAddRs->AddNew();
	int count = ptrAddRs->GFields->Count;
	for(int i = 0;i < ptrAddRs->GFields->Count;i++)
	{
		BSTR fieldname;
		ptrAddRs->GFields->Item[(long)i]->get_Name(&fieldname);
		CString strfieldname = fieldname;
		if(strfieldname == "Geometry")
		{
			if (m_strType=="POINT")
			{
				m_ptrGSS->SetGeometry(ptrAddRs->GFields->Item[(long)i],ptrOrientPoint);
			}
		
			if (m_strType=="LINE")
			{
				m_ptrGSS->SetGeometry(ptrAddRs->GFields->Item[(long)i],ptrLine);
			}

			if (m_strType=="POLYGON")
			{
				m_ptrGSS->SetGeometry(ptrAddRs->GFields->Item[(long)i],ptrPolygon);
			}

			if (m_strType=="ANNO")
			{
				m_ptrGSS->SetGeometry(ptrAddRs->GFields->Item[(long)i],ptrTextPoint);
			}

		}	else if(strfieldname == "ID")
			ptrAddRs->GFields->Item[(long)i]->put_Value(_variant_t((long)temp_v));		
		//else if(strfieldname == "Geometry_sk")
		//	ptrAddRs->GFields->Item[(long)i]->put_Value(_variant_t("1Bm,zRm{"));
		else if (item_attr != m_AttrList.end())
		{
			Attr node_attr = *item_attr;
			ptrAddRs->GFields->Item[(long)i]->put_Value(_variant_t(_bstr_t(node_attr.strAttr.c_str())));

			item_attr++;
		}


	}
	ptrAddRs->Update();	
	ptrAddRs->Close();
	
	//
	m_nID = temp_v;

	return true;
}

//設置參數
void CGeoObj::SetParam(ADOConn* pADOConn,DGMConnectionPtr ptrDVIConn,DGMGeometryStorageServicePtr ptrGSS)
{
	 m_pADOConn = pADOConn;
	 m_ptrDVIConnection = ptrDVIConn;
	 m_ptrGSS = ptrGSS;
}

//得到地理對象對應的數據表表名
bool CGeoObj::GetTableName()
{
	try
	{	
		if (m_pADOConn==NULL)
		{
			m_pADOConn = new ADOConn;
		}
	
		if (!m_pADOConn->m_bConnect)
		{
			if (!m_pADOConn->OnInitADOAcess(GetPathFile()))
			{
				AfxMessageBox("連接數據庫失敗!");
				return false;
			}
		}
		
		

		CString strGeoCode(m_strGeoCode.c_str());
		CString strSQL = "Select * from SvfToGeoMedia where svf代碼='"+strGeoCode+"'";
		ADODB::_RecordsetPtr pDS = m_pADOConn->GetRecordSet((_bstr_t)strSQL);
		
		if (pDS->adoEOF)
		{
			//SendMsg("在SvfToGeoMedia表中沒有查到Svf代碼為"+strGeoCode+"對應的表!");
			//AfxMessageBox("在SvfToGeoMedia表中沒有查到Svf代碼為"+strGeoCode+"對應的表!");			
			pDS->Close();
			return false;
		}

		m_strTable = GetFieldStr("數據表",pDS);
		m_strType  = GetFieldStr("地物類型",pDS);

		pDS->Close();

		//檢查表是否存在

		return true;
	}
	catch (CException* e)
	{
		e->Delete();		
	}		
}

//得到路徑
CString CGeoObj::GetPathFile()
{
	char szFile[500];
	GetModuleFileName(NULL,szFile,_MAX_PATH);

	char szDriver[_MAX_DRIVE];
	char szDir[_MAX_DIR];
	_splitpath(szFile,szDriver,szDir,NULL,NULL);

	CString strDriver(szDriver);
	CString strDir(szDir);

	return szDriver+strDir+"\\DataConv.mdb";
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
香蕉久久一区二区不卡无毒影院| 国产精品精品国产色婷婷| 99re亚洲国产精品| 国产乱码精品一区二区三区av | 精品免费日韩av| 欧美日韩高清不卡| 欧美日韩国产一级| 91精品久久久久久久91蜜桃| 欧美日本在线看| 正在播放一区二区| 日本久久电影网| 亚洲成人自拍偷拍| 日韩欧美一二三| 精品理论电影在线观看| 精品伦理精品一区| 日韩欧美卡一卡二| 久久伊人蜜桃av一区二区| 国产精品视频在线看| 成人免费一区二区三区视频| 一区二区三区中文字幕| 日韩国产高清在线| 国产曰批免费观看久久久| 成人国产精品免费| 欧美色图一区二区三区| 日韩一区二区三区在线视频| 久久婷婷久久一区二区三区| 亚洲欧美在线观看| 午夜激情久久久| 国产三级欧美三级| 精品伊人久久久久7777人| 99久久精品情趣| 国产三级欧美三级日产三级99| 国产精品人人做人人爽人人添| 91日韩在线专区| 亚洲综合视频网| 99久久精品99国产精品| 国产欧美一区二区精品仙草咪| 26uuu亚洲综合色| 欧美一区二区三区免费大片| 26uuu久久天堂性欧美| 亚洲精品菠萝久久久久久久| 精品一区免费av| 91在线高清观看| 久久久国产一区二区三区四区小说| 一区二区三区精品在线观看| 国产一二三精品| 欧美日韩亚州综合| 国产精品私人自拍| 久久国产成人午夜av影院| 色综合久久99| 欧美经典三级视频一区二区三区| 午夜电影久久久| 91美女片黄在线观看91美女| 久久久青草青青国产亚洲免观| 偷拍日韩校园综合在线| 91美女片黄在线| 国产欧美日韩激情| 国产一区二区剧情av在线| 欧美日韩午夜在线视频| 国产精品国产三级国产aⅴ入口 | 欧美性受xxxx黑人xyx性爽| 久久久一区二区| 久久精品国产99国产| 欧美日韩精品一区二区三区蜜桃| 一区二区三区四区蜜桃| aa级大片欧美| 亚洲三级在线免费观看| 国产99精品视频| 久久九九全国免费| 国产精品99久久久久久久女警| 日韩视频免费观看高清完整版| 亚洲综合一区二区精品导航| 一本大道久久精品懂色aⅴ | 亚洲一区二区精品久久av| 波多野结衣一区二区三区| 国产午夜一区二区三区| 久久激情综合网| 精品理论电影在线| 韩国一区二区视频| 欧美精品一区二区久久婷婷| 麻豆视频观看网址久久| 777久久久精品| 麻豆freexxxx性91精品| 亚洲精品一区二区三区福利| 国内外成人在线| 国产清纯在线一区二区www| 国产美女一区二区| 中文字幕不卡的av| 99久免费精品视频在线观看| 亚洲人成伊人成综合网小说| 91在线视频免费91| 日韩一区欧美小说| 欧美在线观看视频一区二区三区| 亚洲国产精品一区二区www在线| 欧美性猛交一区二区三区精品| 亚洲在线观看免费| 日韩一级视频免费观看在线| 国产麻豆精品视频| 日韩一区中文字幕| 欧美福利电影网| 国产美女主播视频一区| 亚洲欧美色综合| 日韩一区二区免费高清| 大胆亚洲人体视频| 丝瓜av网站精品一区二区| 欧美成人精精品一区二区频| 风间由美一区二区av101 | 337p亚洲精品色噜噜狠狠| 美国三级日本三级久久99| 欧美韩国日本综合| 欧美老肥妇做.爰bbww视频| 国产原创一区二区三区| 亚洲在线中文字幕| www国产亚洲精品久久麻豆| 色综合激情久久| 国产一区二区三区电影在线观看| 18成人在线观看| 日韩欧美视频一区| 色94色欧美sute亚洲线路一久 | 国产日韩欧美在线一区| 欧美影视一区在线| 国产99精品在线观看| 美国十次综合导航| 一区二区三区四区中文字幕| 精品国产成人系列| 在线观看91精品国产麻豆| 成人免费毛片aaaaa**| 蜜桃精品视频在线| 亚洲图片欧美色图| 亚洲国产精品ⅴa在线观看| 日韩久久免费av| 欧美三区在线观看| 91天堂素人约啪| 韩国在线一区二区| 日av在线不卡| 偷拍一区二区三区| 亚洲一级不卡视频| 亚洲人成网站色在线观看| 久久亚洲精华国产精华液| 欧美一区二区久久| 7777精品伊人久久久大香线蕉经典版下载 | 欧美一区在线视频| 欧美体内she精视频| 91在线观看高清| www.日本不卡| av一本久道久久综合久久鬼色| 国产一区二区不卡老阿姨| 日本不卡的三区四区五区| 亚洲一区二区三区四区的| 亚洲在线视频免费观看| 亚洲另类中文字| 一区二区三区在线视频观看| 亚洲欧美日韩在线| 最新欧美精品一区二区三区| 国产精品久线在线观看| 成人免费一区二区三区视频 | 午夜亚洲国产au精品一区二区| 亚洲色图欧洲色图婷婷| 一区二区三区四区乱视频| 日韩美女视频一区| 亚洲免费看黄网站| 亚洲不卡av一区二区三区| 亚洲成人av中文| 日日夜夜一区二区| 国产精品亚洲专一区二区三区 | 欧美一区午夜精品| 91精品国产综合久久精品| 日韩午夜在线播放| 久久日韩精品一区二区五区| 国产欧美日韩综合| 亚洲欧美综合在线精品| 亚洲国产精品嫩草影院| 日本欧美加勒比视频| 国产成人在线观看| 99这里只有久久精品视频| 欧美日韩一区国产| 精品区一区二区| 国产精品理论在线观看| 一区二区三区在线免费观看| 婷婷开心激情综合| 国产精品一级在线| 欧美最猛性xxxxx直播| 在线观看91av| 国产日产欧产精品推荐色| 亚洲男女毛片无遮挡| 日本欧美肥老太交大片| 国产白丝精品91爽爽久久| 色婷婷国产精品| 日韩欧美亚洲国产另类| 一区二区中文视频| 日本不卡高清视频| 99国产精品国产精品久久| 欧美一区欧美二区| 国产精品美女www爽爽爽| 日本在线播放一区二区三区| 不卡的av中国片| 精品少妇一区二区三区日产乱码| 日韩理论电影院| 老司机精品视频在线| 91久久精品午夜一区二区|