Windows中的Google Maps Draw Route故障

时间:2015-01-01 12:06:11

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

tldr:最近,我对Google Maps JavaScript API v3的使用不再显示路线或标记。它在我的Debian-box上工作正常,但在我尝试的任何Windows计算机上都没有(从XP到Windows 8)。最近API有变化吗?我的代码有问题吗?见http://pastebin.com/ubRGPtDZ


亲爱的,

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

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

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

我应该去别的地方查一下吗?

或者自12月中旬以来,Windows框上的QWebView行为是否有任何变化?这甚至可能吗?

我仍然认为我的JavaScript调整不充分,所以我也会对这些代码进行调试,但我肯定会感到困惑的是,在Windows计算机上一切正常工作超过4个月,而且仍然在我的Debian-Box上。我已将其置于http://pastebin.com/ubRGPtDZ

对于任何不良英语,非母语人士,我深表歉意。

谢谢大家的任何建议。

维姆

1 个答案:

答案 0 :(得分:0)

发现它!这是一个非常令人沮丧的挑战,但现在它已经解决了。我花了几天时间浏览任何可能的文档,纯粹的试错,测试和怀疑我的代码甚至配置的各个方面,都失败了......但是我又一次浏览了qt项目并找到了这个{ {3}}和post by lowsnr

用lowsnr的话来说:

  

作为Google代码执行以确定的测试的一部分   无论浏览器是否启用了触控功能,都会检查用户代理    Chrome> = 5.0 ,因此将用户代理更改为类似的内容   “Chrome / 1.0”触控界面受到抑制。

显然,显示路线(*)也需要它。所以我结束了一个名为myWebPage的新类,并从qWebPage

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

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

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

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

-

(*)对我来说,证明问题不是我的JavaScript,我试图简单地加载HTML中使用的相同HTML脚本。在QWebView中,它适用于我的Linux机箱,但拒绝显示我尝试过的任何Windows编译二进制文件的说明。但是,如果加载到常规浏览器,代码仍可正常工作。

结论:谷歌地图不像QWebView那样必要。