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

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

?? infodlg.cpp

?? 北京市交通mo+visual c++開發實例
?? CPP
字號:
// InfoDlg.cpp : implementation file
//

#include "stdafx.h"
#include "NameGis.h"
#include "MainFrm.h"
#include "NameGisView.h"
#include "MapObjects2.h"
#include "Crack.h"
#include "AppApi.h"

#include "InfoDlg.h"


// CInfoDlg dialog
//----------------------------------------------------------------------------------------------
IMPLEMENT_DYNAMIC(CInfoDlg, CDialog)
CInfoDlg::CInfoDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CInfoDlg::IDD, pParent)
	, m_FeatureNum(_T(""))
	, m_FeatureType(_T(""))
{
	m_pItmInfos = NULL;
}
//----------------------------------------------------------------------------------------------
CInfoDlg::~CInfoDlg()
{
	if(m_pItmInfos)
	{
		delete []m_pItmInfos;
		m_pItmInfos = NULL;
	}
}
//----------------------------------------------------------------------------------------------
void CInfoDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_INFO_COMBO, m_FeatureBox);
	DDX_Control(pDX, IDC_INFO_INFORESULT, m_FeatureInfoList);
	DDX_Text(pDX, IDC_INFO_NUM, m_FeatureNum);
	DDX_Text(pDX, IDC_INFO_TYPE, m_FeatureType);
}


BEGIN_MESSAGE_MAP(CInfoDlg, CDialog)
	ON_CBN_SELCHANGE(IDC_INFO_COMBO, OnCbnSelchangeInfoCombo)
END_MESSAGE_MAP()


// CInfoDlg message handlers

//----------------------------------------------------------------------------------------------
// 功能:確定指定位置的地物
// 參數:[in]long x	鼠標位置的X值(像素坐標)
//       [in]long y	鼠標位置的Y值(像素坐標)
// 返回值:void
void CInfoDlg::Identify(int x, int y)
{
	CMainFrame* pMainWnd = (CMainFrame*)AfxGetMainWnd();
	CNameGisView* pMapView = (CNameGisView*)(pMainWnd->m_wndSplitter.GetPane(0,0));
	CEnvironment* env = &(pMainWnd->m_environment);
	env->ClearSelRsts();
    
	int  nFeatCount = 0; //選中地物的數目
	CMoPoint  pt;  //鼠標的位置(地圖坐標)
	pt = pMapView->m_Map.ToMapPoint(x, y);
	m_nIdx = -1;
    
	//初始化控件	
	m_FeatureBox.ResetContent();
	m_FeatureInfoList.ResetContent();
	
	if(!m_pItmInfos)
		m_pItmInfos = new ItemInfo[env->m_nLayerNum]; 
	
	//動態計算查詢距離
	double dScale = env->CalcScale(&(pMapView->m_Map));			//地圖比例尺
    
	if (dScale > 8000)
	{
		dScale = dScale/10000;
		dScale = dScale / 5000;
	}
	else
	{
		dScale = dScale/10000;
		dScale = dScale / 2500;
	}
    
	//首先,查詢點地物,其次,查詢線地物,最后查詢面狀地物
	//查詢的圖層只要是可見的
	int aShapeType[3];
	aShapeType[0] = moShapeTypePoint;
	aShapeType[1] = moShapeTypeLine;
	aShapeType[2] = moShapeTypePolygon;
	
	for (int j = 0; j < 3; j ++)
	{
		for (int i = 0; i < env->m_nLayerNum; i ++)
		{		
			if (env->m_layerInfos[i].layer.GetShapeType() != aShapeType[j])
				continue;
            
			m_pItmInfos[i].szName = "";

			//圖層可見并且可選擇,才能夠identify
			if (env->m_layerInfos[i].layer.GetVisible() 
				&& env->m_layerInfos[i].bCanSelected)
			{
				m_pItmInfos[i].rst = 
					env->m_layerInfos[i].layer.SearchByDistance(pt,dScale,"");
			}
			else
			{
				//圖層不可顯示,則跳到下一個
				m_pItmInfos[i].rst = NULL;
				continue;
			}
            
			m_pItmInfos[i].szTable = env->m_layerInfos[i].szTableName;
			m_pItmInfos[i].layer  = env->m_layerInfos[i].layer ;	
			m_pItmInfos[i].szType = env->m_layerInfos[i].szType; 
			m_pItmInfos[i].szSubType = env->m_layerInfos[i].szSubType; 
			m_pItmInfos[i].szFieldName = env->m_layerInfos[i].szFieldName;  

			if (m_pItmInfos[i].rst)
			{
				if (!m_pItmInfos[i].rst.GetEof())
				{
					CString szTemp = m_pItmInfos[i].rst.GetFields().Item(
						COleVariant("名稱")).GetValueAsString();
					if (szTemp != "")
					{
						m_pItmInfos[i].szName = szTemp;
					}
					else
					{
						m_pItmInfos[i].rst = NULL;
						continue;
					}
                    
					if (m_pItmInfos[i].szName != "")
					{
						m_FeatureBox.AddString(m_pItmInfos[i].szName); 
						nFeatCount ++;
					}
				}
			}
		}
	}

	if (nFeatCount > 0)
	{
		char buffer[20];
		_itoa(nFeatCount, buffer, 10 );
		m_FeatureNum = "總共找到" + CString(buffer) + "個地名";
		m_FeatureBox.SetCurSel(0);

		m_nIdx = 0;
		CString str;		
		m_FeatureBox.GetLBText(0, str);
		LoadListBox(GetIndex(str));
		UpdateData(FALSE);
	}
	else
	{
		m_FeatureNum = "沒有找到任何地名";
		m_FeatureType = "類型:沒有"; 
		env->m_selectedSymbol = NULL;
		env->m_selectedFeature = NULL;
		UpdateData(FALSE);
	}
}
//----------------------------------------------------------------------------------------------
// 功能:顯示地名的詳細信息
BOOL CInfoDlg::LoadListBox(int nIndex)
{
	if ("" == m_pItmInfos[nIndex].szName)
		return FALSE;

	m_FeatureInfoList.ResetContent();	
	m_FeatureType = "類型:"+m_pItmInfos[nIndex].szSubType; 
	CMainFrame* pMainWnd = (CMainFrame*)AfxGetMainWnd();
	CNameGisView* pMapView = (CNameGisView*)(pMainWnd->
		                     m_wndSplitter.GetPane(0,0));
	
	if (m_pItmInfos[nIndex].szTable == "")
	{
		m_FeatureInfoList.AddString("沒有詳細信息"); 
		goto FLASH;
	}
	else
	{
		CDaoDatabase* tmpDB = new CDaoDatabase;
		try
		{
			tmpDB->Open(pMainWnd->m_environment.m_szDBName);
		}
		catch (CDaoException* e)
		{
			DisplayDaoException(e);
			delete tmpDB;
			e->Delete();
			return FALSE;
		}

		CDaoRecordset rs(tmpDB);
		try
		{
			CString szSQL;
			szSQL = "Select * From [" + m_pItmInfos[nIndex].szTable + "] Where "
				+ m_pItmInfos[nIndex].szFieldName +" ='"+ m_pItmInfos[nIndex].szName+"'";

			rs.Open(dbOpenDynaset, szSQL);
			if (0 == rs.GetRecordCount())
			{
				m_FeatureInfoList.AddString("沒有詳細信息");  
				goto FLASH;
			}
			
			COleVariant var;
			for (int i = 0; i < rs.GetFieldCount(); i ++)
			{	
				CDaoFieldInfo fieldInfo;
				rs.GetFieldInfo(i, fieldInfo, AFX_DAO_PRIMARY_INFO);
				var = rs.GetFieldValue(i);
				CString szValue = fieldInfo.m_strName + ":" 
					            +  CCrack::strVARIANT(var); 
				m_FeatureInfoList.AddString(szValue); 
			}
		}
		catch (CDaoException* e)
		{
			// DisplayDaoException(e);
			delete tmpDB;
			e->Delete();
			goto FLASH;			
		}

		if(tmpDB)
		{
			if(tmpDB->IsOpen())
			{
				tmpDB->Close();
			}

			delete tmpDB;
			tmpDB = NULL;
		}
	}

FLASH: 
	// 閃爍顯示選擇的地物4次
	pMapView->m_Map.FlashShape(m_pItmInfos[nIndex].rst.GetFields().Item(
		                  COleVariant("Shape")).GetValue().pdispVal, 4);
	
	//設置選中地物的符號
	if (pMainWnd->m_environment.m_layerInfos[nIndex].nCharacterIndex >= 0 
		&& pMainWnd->m_environment.m_layerInfos[nIndex].layer.GetShapeType()
		   == moShapeTypePoint)
	{
		if(pMainWnd->m_environment.m_selectedSymbol)
			pMainWnd->m_environment.m_selectedSymbol.ReleaseDispatch();
		pMainWnd->m_environment.m_selectedSymbol.CreateDispatch(
			                             _T("MapObjects2.Symbol"));		
		pMainWnd->m_environment.m_selectedSymbol.SetSymbolType(
			                             moPointSymbol);
		pMainWnd->m_environment.m_selectedSymbol.GetFont().SetName(
			        pMainWnd->m_environment.m_layerInfos[nIndex].szFontName);
		pMainWnd->m_environment.m_selectedSymbol.SetStyle(4);
		pMainWnd->m_environment.m_selectedSymbol.SetSize(pMainWnd->
			m_environment.m_layerInfos[nIndex].layer.GetSymbol().GetSize());
		pMainWnd->m_environment.m_selectedSymbol.SetCharacterIndex(
			pMainWnd->m_environment.m_layerInfos[nIndex].nCharacterIndex);
		pMainWnd->m_environment.m_selectedSymbol.SetColor(0xff);
        
		pMainWnd->m_environment.m_selectedSymbolSize = 
			pMainWnd->m_environment.m_layerInfos[nIndex].nSymSize;
	}
	else
	{
		if (pMainWnd->m_environment.m_layerInfos[nIndex].layer.GetShapeType() 
			                                   == moShapeTypePoint)
		{
			if(pMainWnd->m_environment.m_selectedSymbol)
				pMainWnd->m_environment.m_selectedSymbol.ReleaseDispatch();
			pMainWnd->m_environment.m_selectedSymbol.CreateDispatch(
				_T("MapObjects2.Symbol"));            
			pMainWnd->m_environment.m_selectedSymbol.SetSymbolType(pMainWnd->
				m_environment.m_layerInfos[nIndex].layer.GetSymbol().GetSymbolType());
			pMainWnd->m_environment.m_selectedSymbol.SetStyle(pMainWnd->
				m_environment.m_layerInfos[nIndex].layer.GetSymbol().GetStyle());
			pMainWnd->m_environment.m_selectedSymbol.SetSize(pMainWnd->
				m_environment.m_layerInfos[nIndex].layer.GetSymbol().GetSize());
			pMainWnd->m_environment.m_selectedSymbol.SetColor(0xff);
            
			pMainWnd->m_environment.m_selectedSymbolSize = 
				pMainWnd->m_environment.m_layerInfos[nIndex].nSymSize;
		}
		else
			pMainWnd->m_environment.m_selectedSymbol = NULL;
	}
    
	CMoFields fields = m_pItmInfos[nIndex].rst.GetFields();
	pMainWnd->m_environment.m_selectedFeature = 
		fields.Item(COleVariant("Shape")).GetValue().pdispVal;
	pMapView->m_Map.SetExtent(pMapView->m_Map.GetExtent()); 

	return TRUE;
}
//----------------------------------------------------------------------------------------------
int CInfoDlg::GetIndex(CString szName)
{
	int nIndex = -1;

	CMainFrame* pMainWnd = (CMainFrame*)AfxGetMainWnd();
	CNameGisView* pMapView = (CNameGisView*)(pMainWnd->m_wndSplitter.GetPane(0,0));
	for (int i = 0; i < pMainWnd->m_environment.m_nLayerNum; i++ )
	{
		if (m_pItmInfos[i].szName == szName)
		{
			nIndex = i;
			break;
		}
	}
    
	return nIndex;
}
//----------------------------------------------------------------------------------------------
void CInfoDlg::OnCbnSelchangeInfoCombo()
{
	CMainFrame* pMainWnd = (CMainFrame*)AfxGetMainWnd();
	CNameGisView* pMapView = (CNameGisView*)(pMainWnd->m_wndSplitter.GetPane(0,0));

	if (m_nIdx != m_FeatureBox.GetCurSel())
	{
		m_nIdx = m_FeatureBox.GetCurSel();
		CString str;		
		m_FeatureBox.GetLBText(m_nIdx, str);
		int nIndex = GetIndex(str);
		LoadListBox(nIndex);
	}
	else
	{
		CString str;		
		m_FeatureBox.GetLBText(m_nIdx, str);
		int nIndex = GetIndex(str);
		CMoFields fields = m_pItmInfos[nIndex].rst.GetFields();
		pMapView->m_Map.FlashShape(fields.Item(
			COleVariant("Shape")).GetValue().pdispVal, 4);
		return;
	}
}
//----------------------------------------------------------------------------------------------

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
极品瑜伽女神91| 久久激情五月婷婷| 中文在线一区二区| 亚洲精选在线视频| 免费av网站大全久久| 日本麻豆一区二区三区视频| 国产精品一区专区| 成人手机电影网| 在线一区二区三区| 这里只有精品99re| 国产精品久久久久影院| 日韩经典一区二区| 国产成人精品免费| 欧美日韩精品免费观看视频| 久久亚洲精精品中文字幕早川悠里| 国产女同性恋一区二区| 五月婷婷激情综合网| 国产成人午夜高潮毛片| 91精品午夜视频| 一区二区三区在线观看国产| 成人午夜av电影| 久久女同性恋中文字幕| 日本不卡一二三区黄网| 色素色在线综合| 国产精品福利电影一区二区三区四区| 久久精品国产第一区二区三区| 欧洲一区在线电影| 一区二区三区中文字幕| av电影天堂一区二区在线 | 国产欧美一区二区三区在线看蜜臀 | 欧美一区2区视频在线观看| 亚洲一区二区三区四区在线免费观看 | 国产无遮挡一区二区三区毛片日本| 日韩高清不卡一区二区| 4438成人网| 蜜臀久久99精品久久久画质超高清| 91官网在线免费观看| 三级成人在线视频| 日韩精品一区二区三区在线播放| 久久99久久99小草精品免视看| 日韩视频一区二区三区在线播放 | 91精品午夜视频| 国内精品伊人久久久久av影院 | 天堂久久一区二区三区| 欧美高清hd18日本| 久久97超碰国产精品超碰| 2014亚洲片线观看视频免费| 国产99久久久国产精品潘金| 国产精品美女久久久久高潮| 色噜噜夜夜夜综合网| 免费观看一级欧美片| 欧美r级电影在线观看| proumb性欧美在线观看| 亚洲国产三级在线| 国产日韩欧美精品电影三级在线| 99久久精品国产毛片| 午夜欧美2019年伦理| 国产精品美女久久久久久久久| 欧美日韩在线一区二区| 国产超碰在线一区| 美女www一区二区| 怡红院av一区二区三区| 久久久电影一区二区三区| 欧美老年两性高潮| 91婷婷韩国欧美一区二区| 乱中年女人伦av一区二区| 亚洲午夜影视影院在线观看| 欧美激情综合在线| 国产女人18水真多18精品一级做| 欧美一区二区精品久久911| 欧美在线免费视屏| 色老汉一区二区三区| 成人在线视频首页| 成人网在线播放| 国产不卡视频在线观看| 激情综合色综合久久| 日本亚洲一区二区| 另类小说欧美激情| 国产精品综合一区二区三区| 狠狠网亚洲精品| 成人高清免费在线播放| 99久久精品情趣| 色成人在线视频| 在线综合+亚洲+欧美中文字幕| 欧美又粗又大又爽| 欧美精品第一页| 久久蜜桃香蕉精品一区二区三区| 精品久久久久久久久久久久久久久久久 | 色香蕉久久蜜桃| 欧美日韩国产影片| 精品日韩一区二区三区| 国产欧美综合色| 亚洲激情自拍偷拍| 男男视频亚洲欧美| 国产精品一区二区三区99| 99久久久国产精品| 日韩精品中文字幕一区二区三区| 日本一区二区三区高清不卡| 一区二区三区丝袜| 国产在线精品一区二区| 91福利在线观看| 久久久久国产精品麻豆| 一区二区三区欧美视频| 免费成人你懂的| av高清久久久| 中文字幕乱码亚洲精品一区| 五月婷婷色综合| 91丝袜美腿高跟国产极品老师 | 视频一区二区三区入口| 成人av中文字幕| 欧美精品一区二区三区一线天视频| 一区二区在线观看视频在线观看| 国产一区二区在线视频| 91精品一区二区三区久久久久久| 欧美激情一区二区三区| 麻豆国产精品一区二区三区| 欧洲av一区二区嗯嗯嗯啊| 国产亚洲欧美在线| 国产一区二区三区四区五区入口 | 成人免费毛片高清视频| 精品免费一区二区三区| 视频在线观看一区| 9191久久久久久久久久久| 午夜激情综合网| 91麻豆精品91久久久久同性| 香蕉影视欧美成人| 欧美一激情一区二区三区| 亚洲成人av一区二区| 日韩一区二区电影| 国产在线精品视频| 亚洲女子a中天字幕| 欧美性xxxxxxxx| 青青青伊人色综合久久| 日韩精品一区二区三区在线播放 | 精品污污网站免费看| 日本午夜一区二区| 国产无人区一区二区三区| 国产不卡高清在线观看视频| 一色屋精品亚洲香蕉网站| 欧美日韩激情一区| 国产在线播放一区| 中文字幕亚洲综合久久菠萝蜜| 色综合天天综合| 久久国产精品99精品国产| 中文字幕av一区二区三区| 欧美日韩国产影片| 91影院在线观看| 久久疯狂做爰流白浆xx| 国产精品成人在线观看| 欧美大片免费久久精品三p| 色狠狠桃花综合| 成人网页在线观看| 韩国成人在线视频| 天天综合色天天综合| 国产精品盗摄一区二区三区| 5858s免费视频成人| 色综合久久综合网欧美综合网| 国产一区二区网址| 免费成人结看片| 天天色综合天天| 性感美女久久精品| 亚洲国产日韩在线一区模特 | 色综合久久久网| 成人性生交大片免费| 高清在线不卡av| 国产在线国偷精品免费看| 久久电影网电视剧免费观看| 美女mm1313爽爽久久久蜜臀| 午夜精品免费在线| 日韩精品成人一区二区三区| 亚洲一区二区精品久久av| 伊人婷婷欧美激情| 亚洲成人在线网站| 日韩成人免费在线| 国产自产v一区二区三区c| 国产一区二区久久| 成人国产电影网| 欧美午夜免费电影| 欧美一区二区三区视频| 精品对白一区国产伦| 中文字幕不卡在线播放| 一区二区三区在线观看欧美| 日韩va欧美va亚洲va久久| 狠狠色狠狠色综合日日91app| 国产精品1024| 在线观看亚洲精品视频| 精品久久久久一区| 一个色妞综合视频在线观看| 日本视频免费一区| 91玉足脚交白嫩脚丫在线播放| 91精品国产综合久久久久久久久久 | 欧美久久免费观看| 国产精品久久久久久久久久免费看 | 欧美日韩免费在线视频| 久久蜜桃一区二区| 日韩电影一区二区三区| 波多野结衣91| 国产三级精品视频| 美女网站视频久久| 欧美日韩成人综合天天影院 |