QWebView:使用谷歌地图拖动地图时非常滞后
QWebView: Extremely laggy when dragging the map around, when using google maps
我使用QWebView显示了一个加载谷歌地图的简单html页面。但是,当拖动地图时,加载图像的速度非常慢,而且它似乎不会缓存图像,因为第二次移动时速度也很慢。
有人看到类似的东西并得到了解决方案吗?
#define MAP_HTML "<html><head><script type="text/javascript" "
"src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>"
"<script type="text/javascript">"
"var map; function initialize(lat, lng) { "
"map = new google.maps.Map(document.getElementById("map_canvas"), "
"{ zoom: 15, center: new google.maps.LatLng(lat, lng), "
"disableDefaultUI: true, mapTypeId: google.maps.MapTypeId.ROADMAP });"
"} </script>"
"</head><body style="margin:0px; padding:0px;" onload="initialize(55.786033,12.521667)">"
"<div id="map_canvas" style="width:100%; height:100%"></div>"
"</body></html>"
GMapWidget::GMapWidget(QWidget *parent)
: QWebView(parent)
, m_accessManager(new QNetworkAccessManager(this))
, m_initMap(false)
{
connect(m_accessManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(slotNetworkReply(QNetworkReply*)));
connect(this, SIGNAL(loadFinished(bool)), this, SLOT(slotLoadFinished(bool)));
setHtml(MAP_HTML);
// auto t = QUrl::fromLocalFile("index.html").path();
// load(QUrl::fromLocalFile("index.html"));
}
您可以尝试在QNetworkAccessManager
中添加一个QNetworkDiskCache
,看看它是否更好:
QNetworkDiskCache *diskCache = new QNetworkDiskCache(this);
diskCache->setCacheDirectory("cacheDir");
m_accessManager->setCache(diskCache);
相关文章:
- 为什么不;名字在地图上是按顺序排列的吗
- 基于多个条件处理地图中的所有元素
- 在C++中将矢量转换为嵌套地图
- OpenGL大的3D纹理(>2GB)非常慢
- 为什么需要复制构造函数,在哪些情况下它们非常有用
- 为什么std::互斥需要很长的、非常不规则的时间来共享
- 替换基于地图的所有引用
- 如何区分地图中的 0 和 false?
- 地图计数确实很重要,或者只是检查是否存在
- 如何从地图中删除矢量对象
- 是否有任何C++功能可以对地图进行排序?
- G++ C++17 类模板参数推导在非常特殊的情况下不起作用
- 如何使用 std::variant 打印地图键/值?
- 使用浮点数和双精度数的非常小数字的数学
- 从矢量或地图中删除共享指针
- 在 c++ 中,有一种方法可以创建一个包含地图作为值的树状地图?
- 无限嵌套具有变体的地图
- 在C 中的地图中地图.非常困惑
- QWebView:使用谷歌地图拖动地图时非常滞后
- 是地图的地图更有效率,还是一个非常大的地图