繁体   English   中英

如何使用QT获取Google静态地图图像(C ++)

[英]How to get google static map images with QT (C++)

我正在尝试使用QT来实现一个可下载google静态地图图像并在GUI应用程序上显示地图的应用程序。 这样,当无法访问互联网时,可以使用本地保存的图像。

我已经检查了很多使用QNetworkAccessManager,QNetworkRequest,QNetworkReply的示例,但是它将返回一些信息,例如“ SSL握手失败”,并且我无法下载该图像。

下载图片的网址是:

    urlbase = "https://maps.googleapis.com/maps/api/staticmap?center=%f,%f&zoom=%d&maptype=%s&size=%dx%d&format=jpg"

上一章,我使用Python进行工作:

    result = urllib.urlopen(url).read()
    tile = PIL.Image.open(cStringIO.StringIO(result))

这是非常容易和方便的。

但是当涉及到QT和C ++时,似乎所有人都需要很多自建函数。 那么,使用C ++和QT有什么简单的方法来完成这项工作吗?

是否有令人信服的理由使用Qt网络功能? 您可以将PIL图像粘贴到QGraphicsPixmapItem ,然后将其放置在QGraphicsScene中 ,这将使您获得与Qt 无关的交互性。

您可以使用QML模块来实现gui并使用Map QML类型的地图。

它支持缓存“离线”功能:

对于“在线” Map插件,网络带宽和延迟可能是导致用户对性能有所了解的主要因素。 执行广泛的缓存来减轻这种情况,但是这种减轻并不总是完美的。 对于“离线”插件,花费在检索存储的地理数据和渲染基本地图特征上的时间通常起主要作用。 一些脱机插件可能会自己使用硬件加速来(部分)避免这种情况。

qml中的地图示例: 在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM