Qt Webview Google Maps Caching
Qt Webview Google Maps Caching
>我创建了一个谷歌地图小部件,它对QWebView进行了子类。基本上,所有谷歌地图的东西都是用Javascript编写的(使用谷歌的Javascript API),并保存在本地存储的html文件中。然后,小部件只显示 html....并做一些其他的事情,但这无关紧要。
我遇到的问题是,与我在Chrome或Safari中打开相同的html文件相比,地图图块的加载时间要长得多。Chrome和Safari不是基于Qt使用的相同WebKit吗?
有没有人遇到过类似的情况?有没有办法缓存地图切片,这样就不必在每次更新显示时重新获取它们?理想情况下,我希望能够永久缓存它们,以便我的程序可以离线运行,但我知道这违反了 Google 的 TOS。我将满足于能够缓存瓷砖以加快平移/缩放速度。
在搜索各种论坛时,使用QNetworkDiskCache已经成为一个潜在的解决方案,但似乎没有人能够让它工作。我似乎无法弄清楚为什么相同的html/javascript在Chrome和Safari中的运行速度比在QWebView中快得多。
QNetworkDiskCache在谷歌地图上工作得很好,与未启用时相比,速度有了显着提高。这应该可以解决问题:
QNetworkAccessManager *manager = new QNetworkAccessManager(this);
QNetworkDiskCache *diskCache = new QNetworkDiskCache(this);
diskCache->setCacheDirectory(QCoreApplication::applicationDirPath() + "/cache");
manager->setCache(diskCache);
然后,将管理器添加到 Web 视图:
frame->page()->setNetworkAccessManager(manager);
frame->page()->settings()->setMaximumPagesInCache(10);
然后继续加载你的html
frame->setHtml(...);
相关文章:
- 调用'maps::size(char [20], char&)'没有匹配函数,但我认为我的方法有
- 比较键和值 std::maps
- 缓存Google Maps供离线使用
- Unordered_Map of Maps or Priority_Queues?
- Qt Webview Google Maps Caching
- 尝试将 QGeoSearchReply 的结果添加到 blackberry 10 Cascades (C++、QT & QML) 中的 maps::D ataProvider
- "std::map with mutexes"与并行插入、查找、擦除之间是否有任何速度测试"libcds maps (Michael Hashmap and Split Order List)"?
- Qt Maps (QML)应用程序窗口是空白的
- 为什么 Bing Maps for Visual Studio 2013 C++无法打开?
- 使用Maps和make_pair编译错误