javascript - Windows 中的 Google map 绘制路线故障

标签 javascript qt google-maps google-maps-api-3

tldr:最近,我使用的 Google Maps JavaScript API v3 不再显示路线或标记。它在我的 Debian 机器上运行良好,但在我尝试过的任何 Windows 计算机上(从 XP 到 Windows 8)都运行不佳。 API 最近有变化吗?我的代码有问题吗?请参阅http://pastebin.com/ubRGPtDZ

<小时/>

亲爱的大家,

2014 年 8 月,我编写了一个 Qt 程序,该程序在某个阶段在 QWebView 中显示 Google map 。通过 JavaScript,我能够绘制一条路线。

截至 12 月中旬,该计划一直运行良好。在我的 Linux-box (Debian) 上,它仍然工作正常,但在我尝试的每台 Windows 计算机上,它都会停止显示路线。 Google map 本身显示良好,但它停止显示任何路线、任何标记......

2014 年 12 月中旬 Google map 有什么变化吗?我检查了changelog of Javascript Maps API v3 ,但 2014 年 9 月之后我没有看到任何新的提及。

我应该检查其他地方吗?

或者自 12 月中旬以来 Windows 盒子上的 QWebView 行为有什么变化吗?这可能吗?

我仍然认为我的 JavaScript 调整可能不够充分,所以我也会调试该代码,但让我感到困惑的是,在 Windows 计算机上一切正常超过 4 个月,并且在我的 Debian-Box 上仍然如此。我已经把它放在网上http://pastebin.com/ubRGPtDZ .

对于这里出现的任何英语非母语人士,我深表歉意。

谢谢大家的建议。

Vim

最佳答案

找到了!这是一个非常令人沮丧的挑战,但现在它得到解决感觉很棒。我花了几天时间浏览所有可能的文档,纯粹的反复试验,测试和怀疑我的代码甚至配置的各个方面,都失败了......但是我再一次浏览 qt 项目并发现了这个 post by lowsnrYuvalal

用 lowsnr 的话来说:

as part of the test that the Google code performs to determine whether the browser is touch enabled, it checks the User Agent for Chrome >= 5.0, so by changing the user agent to something like ‘Chrome/1.0’ the touch interface suppressed.

显然它也需要用于显示方向(*)。因此,我封装了一个名为 myWebPage 的新类,并从 qWebPage 派生它:

class myWebPage : public QWebPage
{
   virtual QString userAgentForUrl(const QUrl& url) const {
      return "Chrome/1.0";
   }
};

在 qWebView 中加载 HTML 之前,我使用 setPage():

 ui->setupUi(this);
 ui->webView->setPage(new myWebPage());
 ui->webView->setHtml("...");

现在它就像一个魅力:-)

--

(*) 对我来说,证明问题不是我的 JavaScript 的原因是我尝试简单地加载与 Google Maps code examples 中使用的相同的 HTML 脚本。在 QWebView 中,它在我的 Linux 机器上运行良好,但拒绝显示我尝试过的任何 Windows 编译的二进制文件的说明。尽管如此,如果您加载到常规浏览器,该代码仍然可以正常工作。

结论:Google map 不需要像 QWebView 那样。

关于javascript - Windows 中的 Google map 绘制路线故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27730642/

相关文章:

javascript - 在 JavaScript 中缩写两个单词的名称

javascript - 使用 styled props 将动态 css 属性应用到 div

android - 在 Android MapView 上移动图标

c# - 如何在 Xamarin.Forms.Maps 中使用暗模式谷歌地图?

java - 当 2 个条件为 true 时从 JSON 获取值

javascript - karma 要求 js 相对路径不起作用

javascript - 使用 Angular JS 将父 div 的焦点更改为子 href 元素的焦点

c++ - 什么时候为 Widget 父构造函数放置 "this"关键字?

linux - QT 和 I/O 可能的错误

c++ - 在 opengl 子窗口上渲染一个 qt 覆盖窗口