Qt编程之mapx组件编程
Posted first_semon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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*类型的转换。
以上是关于Qt编程之mapx组件编程的主要内容,如果未能解决你的问题,请参考以下文章