zoukankan      html  css  js  c++  java
  • 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";
        }
    }
    作者:first_semon
             
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。如有问题,欢迎交流
  • 相关阅读:
    js利用原型对象实现继承--Es5实现的面向对象方式
    js的构造函数原型链
    回调函数
    箭头函数
    关于js的易错知识
    信息论--(1)
    计算机为什么需要反码,补码?
    windows+anaconda下载安装libelimg,学习图像处理
    spring boot + thymeleaf 3 国际化
    spring boot hello and docker
  • 原文地址:https://www.cnblogs.com/first-semon/p/5912342.html
Copyright © 2011-2022 走看看