Qt编程之mapx组件编程

今天利用组件打包程序写了一些小例子,给大家贴出来,顺便提高一下记忆。

上一篇介绍了直接使用控件和使用控件打包程序对控件进行编程的方法。个人感觉后者编程更方便。不说废话了:

头文件中所需要的类型指针对象,顾名思义可以看到指针对象所述的类

MapSpace::Map *map;

MapSpace::CMapXPoint *pCMapXPoint,*pCMapXPoint1;
MapSpace::CMapXFeatureFactory *pCMapFeaFactory;
MapSpace::CMapXFeature *pCMapXFeature;
MapSpace::CMapXStyle *pCMapStyle;
MapSpace::CMapXLayers *pCMapLayers;
MapSpace::CMapXLayer *pCMapLayer;
QFont Font;
MapSpace::CMapXFeature *pCMapLine;
MapSpace::CMapXPoints *pCMapPoints;
MapSpace::CMapXParts *pCMapParts;
MapSpace::CMapXFeature *pCMapArc;
下面是.cpp文件中的功能实现:
map = new MapSpace::Map("",this);//建立一个地图对象
map->move(QPoint(10,10));//设置地图左上角的坐标
map->resize(QSize(size().width()-20,size().height()-20));//设置地图的宽度和高度
map->SetCurrentTool(MapSpace::ToolConstants::miPanTool);//设置鼠标手型
map->setProperty("MousewheelSupport",2);//设置鼠标支持滚轮缩放
pCMapLayers = map->Layers();//建立一张图层
这里说一下:
pCMapLayer = pCMapLayers->CreateLayer("test");
每个地图都具有一个图层的集合。Layer 集合由 Layer 对象构成。Layer 集合具有用于从集合添加或移除Layer 对象的方法和属性。
计算机地图被组织成多个图层。将图层视作在顶部彼此堆叠的透明层。每个图层包含整个地图的不同方面。每一地图图层都包含不同的地图对象,例如区域、点、线条和文本。
pCMapFeaFactory = map->FeatureFactory();
此对象允许您创建新的地图图元,或通过对现有图元执行操作(例如缓冲)来创建图元
以上这些都是最基本的需要,下面就是根据功能的不同看具体编码了
pCMapXFeature = pCMapFeaFactory->CreateSymbol();//创建一个符号
pCMapXPoint = pCMapXFeature->Point();//创建一个点
pCMapXPoint->Set(120.06272,29.35522);//设置点的坐标
pCMapStyle = pCMapXFeature->Style();//创建一个样式
pCMapStyle->SetSymbolCharacter(35);//设置样式的粗细
pCMapStyle->SetSymbolFontColor(QColor(100,200,190));//设置样式的颜色
Font = pCMapStyle->SymbolFont();//建立一个样式字体
Font.setBold(true);//将样式字体加粗
pCMapLayer->AddFeature(pCMapXFeature->asVariant().value<IDispatch*>());//将符号中所有元素加入到图层中
map->ZoomTo(3,120.06272, 29.35522);//将地图中心调整到视图内
 
 
以上这些代码是可以运行的,运行效果是一个带有颜色的圆点。
注意IDispath*类型的转换。
时间: 2024-07-31 10:01:50

Qt编程之mapx组件编程的相关文章

Qt编程之d指针与q指针

我们在Qt中可以看到两个宏Q_D和Q_Q这两个红分别是取得d指针和q指针的,d指针指向封装的私有类,q指针指向公共的类.(我的理解类似于回调,回指的意思). 为什么Qt要这样实现呢?下面几个链接中的文章都做了解析和实现. http://blog.csdn.net/mznewfacer/article/details/6976293 http://blog.csdn.net/ma52103231/article/details/7464610 http://blog.csdn.net/cibire

Qt编程之UI与控件布局

当然,大家都知道UI界面可以用Qt Designer在约束环境下设置编辑.ui文件,再将.ui文件转换成对应的ui_XXX.h文件,这头文件中的内容是:用C++语言实现真正的界面布局.uic -o "outputfile" "inputfile.ui"命令行可以转换 当然,也可以自己用C++来实现界面布局利用成员函数SetGeometry什么的,但是那样的开发效率就下降了,BUG概率引入的也会加大. 这篇文章很好的演示了只利用C++实现的界面设计布局: http:/

qt之mapx组件编程

mapx组件利用qt工具dumpcpp到处头文件和.cpp文件后将其加入到新建的qt项目中即可. 不过本人遇到问题知道今天偶然的解决了.记下来,以免忘记. demo的项目结构如下: 然后在.pro文件中添加QT += axcontainer 同时将maxFile.h添加到widget.h中 1>首先将项目清理一下,然后执行qmake,最后编译执行.报出如下错误: 为了解决这个c2512错误和c2248错误,本人试图重写这个类,但是始终解决不了c2248这个错误.所以索性先将这个类的执行体注释掉(

qt 环境下mapx组件的鼠标跟踪

经过两天的研究mapx组件人坐标转换还是没有转换成功,因为不管怎么变,定点转换的经纬度坐标始终与期望的值有较大的偏差.最后还是想老大请教了一下,划了半天功夫就研究出来了(不愧是老大,仰慕之情犹如滔滔江水……):老大说,组件导出的包文件中坐标转换函数在qt环境下有问题,你使用vc下面的dll就可以了,还给了一个链接让参考,再次感谢这位博主.http://blog.csdn.net/zirandeai/article/details/51160111 下面给出vc做的动态库,,可以直接下载.http

qt 环境下mapx组件打包后编译产生c2248和c2512错误

C:\Qt\Qt5.6.0\5.6\msvc2013\include\QtCore\qmetatype.h:760: error: C2248: “MapSpace::IRowCursor::IRowCursor”: 无法访问 private 成员(在“MapSpace::IRowCursor”类中声明) C:\Qt\Qt5.6.0\5.6\msvc2013\include\QtCore\qmetatype.h:761: error: C2512: “MapSpace::IRowCursor”:

ASP编程之ActiveX 组件

从今天开始我们将正式学习 ASP 的精华部分 --ActiveX 组件.事实上,当你用 ASP 编写服务器端应用程序时,必须依靠 ActiveX 组件来强大 Web 应用程序的功能,譬如:你需要连接数据库,对数据库进行在线操作或者对 WEB 服务器上的文件系统进行操作,亦或你需要一个 WEB 广告交换程序,所有这一切你都必须通过调用 ASP 内建的 ActiveX 组件或自己编写所需的组件来完成. 那么,究竟什么是 ActiveX 组件呢?它又是如何运作的呢?其实 ActiveX 组件是一个存在

Qt编程之Qt样例表(QSS)

For a long time, Qt has allowed you to decorate your GUIs with CSS’ish style sheets. Inspired by the web, stylesheets are a great way to stylize your Qt GUI, but it seems that few people use them. In this tutorial, we’ll create an example dialog in Q

Qt编程之QtScript

需求是这样的: 需要给一个硬件接口测试些东西,用js来调用,js做成不同的独立模块分别测试不同的硬件接口,包括DMD内存,PCIE带宽等等.需要用一个exe来载入这些js文件分别调用测试模块.exe用Qt来做.就只能用QtScript模块了么. QtScript是一个解释脚本的引擎 符合EMCAScript标准. references: http://blog.csdn.net/guxch/article/details/7656846 http://blog.csdn.net/bbjjqq/a

Qt编程之qrc文件的链接

在Qt里面,.qrc文件是一种类似XML结构的文件,用结构化数据描述应用程序所需要的资源位置,例如图片,应用程序的图标文件等.它最终是与.ui文件类似都被通过Qt提供的命令行工具生成对应的qrc_XXX.cpp文件了.最终被链接到应用程序中. 对应的命令行是这样的: "$(QTDIR)\bin\rcc.exe" -name "%(Filename)" -no-compress "%(FullPath)" -o .\GeneratedFiles\q