qt 环境下mapx组件的鼠标跟踪
经过两天的研究mapx组件人坐标转换还是没有转换成功,因为不管怎么变,定点转换的经纬度坐标始终与期望的值有较大的偏差。最后还是想老大请教了一下,划了半天功夫就研究出来了(不愧是老大,仰慕之情犹如滔滔江水……):老大说,组件导出的包文件中坐标转换函数在qt环境下有问题,你使用vc下面的dll就可以了,还给了一个链接让参考,再次感谢这位博主。http://blog.csdn.net/zirandeai/article/details/51160111
下面给出vc做的动态库,,可以直接下载。https://pan.baidu.com/s/1kVNN0OJ
下载后将文件放在项目路径下,然后将.pro文件加入.lib的文件路径,具体如下:LIBS += ../Eagle/MapXLib1.lib
将.h文件加入到头文件中,最后显示的加载dll文件(本人是显示的加载动态库)。
在头文件中声明一个QLibrary变量,初始化的时候加载dll。这样就可以直接使用mapx坐标转换函数了。
{
ui->setupUi(this);
mapx = NULL;
QAxWidget *widget = new QAxWidget(this);
widget->setControl("{9D6ED188-5910-11D2-98A6-00A0C9742CCA}");
widget->move(10,10);
widget->resize(size().width()-10,size().height()-10);
mapx = new CMapX(widget->asVariant().value<IDispatch*>());
pLayer = mapx->Layers()->CreateLayer("test");
mapx->ZoomTo(3,120.06872, 29.35692);
QObject::connect(widget, SIGNAL(MouseMove(int, int, double, double)), this, SLOT(MapxMouseMove(int, int, double, double)));
}
MouseMove(int, int, double, double)是mapx的信号
void MainWindow::MapxMouseMove(int Button, int Shift, double X, double Y){
if(lib.load()){
double Lng = 0.0;
double Lat = 0.0;
CoordScreen2Map(mapx->asVariant().value<IDispatch*>(),X,Y,Lng,Lat);
qDebug()<<"mapx"<<Lng<<"mapy"<<Lat;
pFeatureFactory = mapx->FeatureFactory();
pFeature = pFeatureFactory->CreateSymbol();
pPoint = pFeature->Point();
pPoint->Set(Lng,Lat);
pLayer->AddFeature(pFeature->asVariant().value<IDispatch*>());
}
else {
qDebug()<<"error";
}
}
qt 环境下mapx组件的鼠标跟踪的更多相关文章
- Qt 环境下MAPX组件的编程
使用mapx打包文件可以方便的迅速开发,今天介绍一种不使用打包文件,直接使用mapx组件的编程方法. 就像之前介绍flash控件编程的方法,首先建立一个qt demo.基于那个的窗口都可以. 本den ...
- qt 环境下mapx组件打包后编译产生c2248和c2512错误
C:\Qt\Qt5.6.0\5.6\msvc2013\include\QtCore\qmetatype.h:760: error: C2248: “MapSpace::IRowCursor::IRow ...
- qt环境下Mapx组建的编程---------regoin
#include "widget.h" #include "ui_widget.h" #include <QPushButton> #include ...
- Qt 环境下的mapx控件-------2
今天花了一天的时间去查找mapx相关的资料,但是到最后想要的东西还是一无所获,不过还是学到了很多东西.下面以大家分享一下: mapx软件的安装:下载后安装mapx软件,成功后会在安装路径下存在acti ...
- QT环境下实现UI界面的“拼图游戏”
main.cpp #include "mainwindow.h" #include <QApplication> int main(int argc, char *ar ...
- Qt编程之mapx组件编程
今天利用组件打包程序写了一些小例子,给大家贴出来,顺便提高一下记忆. 上一篇介绍了直接使用控件和使用控件打包程序对控件进行编程的方法.个人感觉后者编程更方便.不说废话了: 头文件中所需要的类型指针对象 ...
- Qt 环境下的activex控件编程-------1
本人第一次接触这种activeX控件的东西,参考了网上很多的教程,终于耗时三个多小时初步理解并编写了一个小demo,现在分享给大家,希望大家少走弯路.步骤如下: 1>像平常创建项目一样创建一个d ...
- QT 环境下开发socketCan接口程序
使用头文件 #include <QMainWindow>#include "QTimer"#include "QTime"#include &quo ...
- qt 工具下的dump工具导出文档出现异常解决方案
今天一直认为qt环境下的dumpcpp 和dumpdoc两个导出工具很好用,可以今天在导出MSChart组件的类方法文档时,虽然导出成功了,但是导出的结果却是令人失望.自己也不知道如何能够正确导出,就 ...
随机推荐
- mysql 根据某字段特定值排序
比如: 表 :user 字段:orders (值为 1,2,3) 要求根据字段 orders 按2 -> 1 -> 3 排序 使用以下语句实现SELECT *FROM userORDER ...
- 关于SQL Cookbook里dept与emp表结构以及数据
用MYSQL 写了一下,将number变成int, to_date去掉即可. DROP TABLE IF EXISTS `dept`; CREATE TABLE `dept` ( `DEPTNO` ) ...
- <%@page contentType="text/html;charset=gbk"%>与<meta http-equiv="Content-Type" content="text/html; charset=GBK">区别
前一个是在服务端起作用,是告诉应用服务器采用何种编码输出JSP文件流,后一个是在客户端起作用,是告诉浏览器是采用何种编码方式显示HTML页面. 前者由jsp引擎对输出内容进行编码, 后者将由I ...
- Lua词汇约定
Lua的标识符包含数字,字母以及下划线,数字不能作为标识符的开头. and break do else elseif end false for function goto if in local n ...
- vue 2.0版本----》常用代码说明
------------------------------------------代码不显示-------------------------------------------- [v-cloak ...
- js实现光标位置置后
//定位div(contenteditable = "true"),上传图片后,光标移到输入框后面 function po_Last_Div(obj) { if (window.g ...
- 使用USBWriter做U盘启动盘后容量变小的解决办法
环境windows10 , 以administrator登录: 1. 按下windows键盘上的Win+R键, 输入cmd 2. 输入DiskPart, 回车, 然后弹出新的命令行窗口 3. 在弹出 ...
- xmind8
win10企业版安装 xmind.zip,打开应用程序报下面的错 解决办法是 先备份xmind8下的XMind.ini文件 Open up Xmind.ini and replace "Ap ...
- 基于Lattice_CPLD/FPGA Diamond 开发流程
本文主要介绍了Lattice CPLD/FPGA集成开发环境的使用方法,并通过点亮开发板(Mach XO2 Breakout Board)上位号为D2的LED这一实例来演示其开发流程. 1. ...
- XE8 (RTM) Android SDK 更新安装(转)
原地址:http://www.cnblogs.com/onechen/p/4379924.html 适用:XE8 Android 平台 问题:安装 XE8 RTM 时,如果勾选了 Android SD ...