0

我们已经在 Delphi 2007 应用程序中实现了出色的 GMLib 库,一切正常。我们需要使用 Google Maps for Work 许可证(并且需要增加配额)。我们不知道如何在底层 JavaScript 中实现这一点。

不幸的是,GMLib 的作者最近没有太多活动。有谁知道他们是否会在(不久的)将来支持此代码?

4

1 回答 1

0

最终我们自己找到了答案:

  1. Resources 文件夹中的 map.html 需要从 API_KEY 更改为 client

    src="http://maps.google.com/maps/api/js?v=3.17&key=API_KEY&etc.
    
    src="http://maps.google.com/maps/api/js?v=3.17&client=API_KEY&etc.
    

并且资源文件需要重建

  1. 现在可以将 GMMap.APIKey 设置为客户端 ID(由 Google 发布,格式为 gme-myclientid。Google 还要求在客户端门户上注册引荐来源网址,它是客户端 ID 和引荐来源网址的组合使用权

  2. (重要的一点)GMMapVCL.pas 需要更新

    procedure TGMMap.LoadBlankPage;
    begin
      if not (FWebBrowser is TWebBrowser) then Exit;
    
      FDocLoaded := False;
      //TWebBrowser(FWebBrowser).Navigate('about:blank');
      TWebBrowser(FWebBrowser).HandleNeeded;
      TWebBrowser(FWebBrowser).Navigate('http://myvalidreferrerurl');
    end;
    

可以将 about.blank 注册为有效的引荐来源网址,但这将有效地向知道客户 ID 的任何人开放访问权限。相反,请确保在加载 GMMap 时 TWebBrowser 控件上没有文档,这将导致上述过程运行。

于 2015-09-14T15:35:38.810 回答