Qt 调用 google Earth Plugin com 组件

本文详细介绍了如何在Qt应用程序中集成Google Earth插件,并通过步骤演示了从安装插件到实现基本功能的过程。包括注册组件、生成接口文件、添加地图控件及使用API进行相机控制等关键操作。

一,安装 google Earth Plugin

 

二,将 earth 注册侧到系统中。为了 调用com 组件。

 

三,利用 Qt  dumpcpp.exe  生成接口文件 earthlib.h  和earthlib.cpp。这两个文件 涵盖了所有的接口。可以将 Qt的这个工具的路径 加到path的环境变量中。

 

四,将 earthlib.h  和earthlib.cpp 添加到自己的工程中。同时 工程当中 需要添加 CONFIG+=qaxcontainer  。使其支持 com组件 功能。

 

五,添加 地图控件 窗口  到自己的窗口中

 

void Widget::init()
{
    CoInitialize(NULL);

 
    appGE = new ApplicationGE();
    renderOLE= appGE->GetRenderHwnd();
    mainOLE   = appGE->GetMainHwnd();

 
    renderParentHandle = GetParent((HWND)renderOLE);
    mainHandle = (HWND)(mainOLE);

 
    WId id = ui->openGLWidget->winId();
    SetParent(renderParentHandle, (HWND)id);
    ShowWindow(mainHandle, SW_HIDE);
    if (SUCCEEDED(appGE))
    {
        while (appGE->IsInitialized() == 0)
        {
            qDebug()<<QStringLiteral("已经登录");
            Sleep(500);
        }
    }

 
   qDebug()<<"isOnLine"<< appGE->IsOnline();
   appGE->Login();

 
   qDebug()<<"ver"<<appGE->VersionMajor()<<appGE->VersionMinor()<<appGE->VersionBuild();
}

 

添加退出 函数,析构时 执行,否则 google earth 会在后台 不退出。

 

void Widget::exit()
{
    // Close the main Google Earth app
    PostMessage(mainHandle, WM_QUIT, 0, 0);
    appGE->deleteLater();
}

 

六,google  earth api 可通过ApplicationGE  访问,比如下边的 相机切换

 

void Widget::on_lineEdit_editingFinished()
{
    appGE->SetCameraParams(32,118,0,RelativeToGroundAltitudeGE,45,0,4,2);
}

 

七,效果如下,目前扔 存在窗口 大小不对的问题。 源码路径:https://download.youkuaiyun.com/download/weixin_38416696/10278123

 

八,附 其他 大神博客, 关于com组件的介绍 和api简介

http://blog.youkuaiyun.com/Marcelxx/article/details/11472317

http://download.youkuaiyun.com/download/a105801209030/10262850

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

土拨鼠不是老鼠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值