Qt 环境下MAPX组件的编程

时间:2022-12-06 07:10:50

使用mapx打包文件可以方便的迅速开发,今天介绍一种不使用打包文件,直接使用mapx组件的编程方法。

就像之前介绍flash控件编程的方法,首先建立一个qt demo.基于那个的窗口都可以。

本deno主要是画一个符号:

QAxWidget *mapx = new QAxWidget(this ,0);//创建一个mapx对象
mapx->move(30,30); //设置距离主窗口左上角的位置
mapx->resize(300, 300); //设置mapx组件的大小

mapx->setControl(QString::fromUtf8("{87c293c8-44b3-49a4-8ee8-ea6dfc572ded}"));

//创建层"aaa"
QAxObject *pLayers = mapx->querySubObject("Layers");
QAxObject *pLayer = pLayers->querySubObject("CreateLayer(QString)", "aaa");

QAxObject *pFeatureFactory = mapx->querySubObject("FeatureFactory");
// 画一个符号
QAxObject *pSymbol = pFeatureFactory->querySubObject("CreateSymbol");
QAxObject *pPoint = pSymbol->querySubObject("Point");
pPoint->dynamicCall("Set(double, double)", 120.06872,29.35692);
pLayer->dynamicCall("AddFeature(QVariant)", pSymbol->asVariant());

mapx->dynamicCall("ZoomTo(double, double, double)", 3, 120.06872,29.35692);//这里的经纬度坐标要和上边符号设置的经纬度坐标一致,否则代码运行出来可能看不到符号

注意:字符串都是mapx累的一些方法或者属性

照猫画虎其它任何组件应该都会写代码了