qt环境下Mapx组建的编程---------regoin
#include "widget.h"
#include "ui_widget.h" #include <QPushButton>
#include <QToolBar>
Widget::Widget(QWidget *parent) :
QWidget(parent),
map(nullptr),
pCMapXPoint(nullptr),pCMapXPoint1(nullptr),pCMapXPoint2(nullptr),
pCMapFeaFactory(nullptr),
pCMapXFeature(nullptr),
pCMapStyle(nullptr),
pCMapLayers(nullptr),
pCMapLayer(nullptr), pCMapLine(nullptr),
pCMapPoints(nullptr),
pCMapParts(nullptr), pCMapArc(nullptr), pCMapXFeatureRegoin(nullptr),
//坐标的变化
pCMapXCoordSys(nullptr),
ui(new Ui::Widget)
{
ui->setupUi(this);
this->resize(,); QPushButton *pButton = new QPushButton("tool",this);
pButton->resize(,); //建立一个地图
map = new MapSpace::Map("",this);
//设置大小属性
map->move(QPoint(,));
map->resize(QSize(size().width()-,size().height()-)); map->SetCurrentTool(MapSpace::ToolConstants::miPanTool);//鼠标工具
map->setProperty("MousewheelSupport",);//支持滚轮
/* 显示一个小图标(旗子模样)*/
pCMapLayers = map->Layers();
pCMapLayers->AddGeoSetLayers("C:/mapx/MapX4/Maps/Captial.gst");
pCMapLayer = pCMapLayers->CreateLayer("test"); pCMapFeaFactory = map->FeatureFactory(); //划一个区域。regoin
pCMapXFeatureRegoin = pCMapFeaFactory->CreateRegion();//创建一个区域feature
pCMapPoints = new MapSpace::CMapXPoints;
pCMapPoints->setControl("MapX.Points.4");
pCMapParts = pCMapXFeatureRegoin->Parts();
pCMapXPoint = pCMapPoints->AddXY(120.07372, 29.35792);
pCMapXPoint1 = pCMapPoints->AddXY(120.07270, 29.35780);
pCMapXPoint2 = pCMapPoints->AddXY(120.07000, 29.35000); pCMapStyle = pCMapXFeatureRegoin->Style();
//pCMapStyle->setControl("Mapx.Style.4");
//pCMapStyle->SetRegionBackColor(200);
//pCMapStyle->SetLineColor(117);
pCMapStyle->SetRegionBorderWidthUnit(MapSpace::StyleUnitConstants::miStyleUnitTenthsOfPoint);
pCMapStyle->SetRegionBorderWidth();//边界线条宽度,与上方函数一起使用
pCMapStyle->SetRegionBorderColor();//边界颜色
pCMapStyle->SetRegionColor();//背景颜色
// pCMapStyle->SetRegionStyle(MapSpace::miPenSolid);
pCMapStyle->SetRegionPattern(MapSpace::miPatternCross);
//pCMapStyle->SetRegionTransparent(true);//用于至少两个图元之间 pCMapParts->Add(pCMapPoints->asVariant().value<IDispatch*>());
pCMapLayer->AddFeature(pCMapXFeatureRegoin->asVariant().value<IDispatch*>());
map->ZoomTo(,120.06272, 29.35522);
}
在加上圆形的图元
void MainWindow::CMapxInit(){
widget = new QAxWidget(this);
widget->setControl(QString::fromUtf8("{9D6ED188-5910-11D2-98A6-00A0C9742CCA}"));
widget->resize(size().width(),size().height());
pCMapX = new CMapX(widget->asVariant().value<IDispatch*>());
pCMapXLayer = pCMapX->Layers()->CreateLayer("aaa");
pCMapXFeatureFactory = pCMapX->FeatureFactory();
pCMapXFeaturePoint = pCMapXFeatureFactory->CreateSymbol();
pCMapXPoint = pCMapXFeaturePoint->Point();
pCMapXPoint->Set(120.06872,29.35692);
//算出外接矩形的两个角坐标,一个在X轴上,一个在Y轴上
pCMapXFeatureCircularRegion = pCMapXFeatureFactory->CreateCircularRegion(miCircleTypeMap,pCMapXPoint->asVariant().value<IDispatch*>(),,,);
pStyle = pCMapXFeatureCircularRegion->Style();
pStyle->SetRegionColor(QColor(,,));
pCMapXLayer->AddFeature(pCMapXFeatureCircularRegion->asVariant().value<IDispatch*>());
pCMapX->ZoomTo(,120.06872,29.35692);
}
qt环境下Mapx组建的编程---------regoin的更多相关文章
- Qt 环境下MAPX组件的编程
使用mapx打包文件可以方便的迅速开发,今天介绍一种不使用打包文件,直接使用mapx组件的编程方法. 就像之前介绍flash控件编程的方法,首先建立一个qt demo.基于那个的窗口都可以. 本den ...
- qt 环境下mapx组件的鼠标跟踪
经过两天的研究mapx组件人坐标转换还是没有转换成功,因为不管怎么变,定点转换的经纬度坐标始终与期望的值有较大的偏差.最后还是想老大请教了一下,划了半天功夫就研究出来了(不愧是老大,仰慕之情犹如滔滔江 ...
- qt 环境下mapx组件打包后编译产生c2248和c2512错误
C:\Qt\Qt5.6.0\5.6\msvc2013\include\QtCore\qmetatype.h:760: error: C2248: “MapSpace::IRowCursor::IRow ...
- Qt 环境下的mapx控件-------2
今天花了一天的时间去查找mapx相关的资料,但是到最后想要的东西还是一无所获,不过还是学到了很多东西.下面以大家分享一下: mapx软件的安装:下载后安装mapx软件,成功后会在安装路径下存在acti ...
- Qt 环境下的activex控件编程-------1
本人第一次接触这种activeX控件的东西,参考了网上很多的教程,终于耗时三个多小时初步理解并编写了一个小demo,现在分享给大家,希望大家少走弯路.步骤如下: 1>像平常创建项目一样创建一个d ...
- QT环境下实现UI界面的“拼图游戏”
main.cpp #include "mainwindow.h" #include <QApplication> int main(int argc, char *ar ...
- .NET环境下的DPAPI加密编程
Windows的本地加密保护机制提供了简单的调用接口,密钥的生成.保护等事项一概由系统来处理,其编程接口称为DPAPI.这一加密保护机制的边界是用户登录帐户或者本地计算机系统,使用操作系统设定的加密处 ...
- QT 环境下开发socketCan接口程序
使用头文件 #include <QMainWindow>#include "QTimer"#include "QTime"#include &quo ...
- qt 工具下的dump工具导出文档出现异常解决方案
今天一直认为qt环境下的dumpcpp 和dumpdoc两个导出工具很好用,可以今天在导出MSChart组件的类方法文档时,虽然导出成功了,但是导出的结果却是令人失望.自己也不知道如何能够正确导出,就 ...
随机推荐
- 素数方阵的工程ing
2016 12 12 16 12 开始 2016 12 13 17 30 还没开打 2017 1 3 ..... 一星期前貌似打完了... 如下 #include<iostream> ...
- 什么是OAuth授权?
什么是OAuth授权? 一.什么是OAuth协议 OAuth(开放授权)是一个开放标准. 允许第三方网站在用户授权的前提下访问在用户在服务商那里存储的各种信息. 而这种授权无需将用户提供用户名和密 ...
- Java JDBC使用方法
public class JDBC{public static void main(String[] args){//查询数据selectData();}//查询数据的方法private static ...
- Python 批量修改文件名
最近下载了几部美剧(越狱.迷失.权利的游戏......),每集文件名都好长好长..想改短一些,但一个一个改太累了,于是写了个脚本来实现批量修改: 修改前文件名: 修改后文件名: 代码实现: #enco ...
- Maximum Depth of Binary Tree
二叉树最大深度的递归实现. /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNo ...
- linux 目录定义
/ 根目录,存放系统命令和用户数据等(如果下面挂载点没有单独的分区,它们都将在根目录的分区中) /boot boot loader 的静态链接文件,存放与Linux启动相关的程序/ho ...
- Linux-awk直接修改原文件
#注意:重定向符号后面的文件名需要加双引号 awk '{print > "file"}' file
- 嵌套循环中break、continue的用法
在循环语句中经常会用到break.continue语句,基本用法如下: 一.break语句为退出当前循环,在嵌套循环中结果如下: var num=0; for(var i=0;i<5;i++){ ...
- Asp.net MVC 的八个扩展点
http://www.cnblogs.com/richieyang/p/5180939.html MVC模型以低耦合.可重用.可维护性高等众多优点已逐渐代替了WebForm模型.能够灵活使用MVC提供 ...
- 得到APP【每天听本书】微信交流群(每天更新)
得到APP[每天听本书]微信交流群,每天更新下载学习资料 添加个人微信号:zhidu10000 进入微信群. “坚持每天读一本书,每天进步1.01,每年进步37.8倍” 2016年书单合辑点此链接,查 ...