VC2010开发ArcGIS Engine - 图文(3)

2019-02-14 22:13

#pragma region 绑定许可

IArcGISVersionPtr ipVer(__uuidof(VersionManager)); VARIANT_BOOL succeeded;

if (FAILED(ipVer->LoadVersion(esriArcGISEngine , L\,&succeeded)))

return false;

#pragma endregion

#pragma region 初始化许可

IAoInitializePtr ipInit(CLSID_AoInitialize); esriLicenseStatus status;

ipInit->Initialize(esriLicenseProductCodeEngine, &status); if (status != esriLicenseCheckedOut)

AoExit(0);

return true;

#pragma endregion }

1.2.4 如何显示地图

现在头文件,初始化许可的事情都搞定了,但是地图如何显示?想象下C#

是如何做的,拖一个地图控件上去,然后将数据在这个地图控件上显示,但是这是VC,不是这么简单,当然地图控件肯定是ESRI提供,微软不会提供一个容纳地图的控件吧?两种方法:插入控件和直接生成相关的类,我们先用第二个方法,顺便回一

下MFC。

1.2.5 添加和地图控件相关的MFC类

在工程上右键,添加类,选择第一个,如下图:

弹出一个向导,在可用的ActiveX控件中找到Esri的地图控件,设置生成的类,如下图:

在CMapMFCView类中添加头文件,定义一个CMapControl2的变量,如下图:

在类视图中,右键该类,转到“对话框“,出现如下界面:

在上图中拖一个按钮上去,改一下属性,并且添加单击事件(使用类向导完成),然后添加下面的代码(先不要管,我会在后面介绍,CWsClass类是我添加的用来获取要素类的见后面)

void CMapMFCView::OnClickedBtn() {

BSTR bStringWS = SysAllocString(L\数据\\\\1\); BSTR bStrFcName = SysAllocString(L\);

IFeatureClassPtr ipFeatureClassTest=pWs.GetFeatureClass(bStringWS,bStrFcName); SysFreeString(bStrFcName); CWsClass pWs; CRect r;

GetClientRect(&r);

SysFreeString(bStringWS); IFeatureLayer *ipFeatureLayerX;

// 查看注册表或者tlh文件{E663A651-8AAD-11D0-BEC7-00805F7C4268} 完完全全通过COM自己创建对象 HRESULT

hr1=::CoCreateInstance(CLSID_FeatureLayer,NULL,CLSCTX_ALL,IID_IFeatureLayer,(void**)&ipFeatureLayerX);

m_MapControl.put_BackColor(16777215); //手动释放

ipFeatureLayerX->Release(); ipDsetTest->Release();

m_ipMapControl->AddLayer(ipFeatureLayerX,0); IDataset *ipDsetTest;

HRESULT hr2=ipFeatureLayerX->QueryInterface(__uuidof(IDataset),(void**)&ipDsetTest); if(FAILED(hr2))

return; //赋值

ipFeatureLayerX->putref_FeatureClass(ipFeatureClassTest);

//这句类似Windows的用类来创建窗体(MapControl控件)

m_MapControl.Create(L\,WS_CHILD|WS_VISIBLE,r,this,10000); //获取指针

IMapControl2Ptr m_ipMapControl=m_MapControl.GetControlUnknown(); if(FAILED(hr1))

return;


VC2010开发ArcGIS Engine - 图文(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:智慧树美学与人生答案2018知到美学与人生答案章测试答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: