我们已经在 Delphi 2007 应用程序中实现了出色的 GMLib 库,一切正常。我们需要使用 Google Maps for Work 许可证(并且需要增加配额)。我们不知道如何在底层 JavaScript 中实现这一点。
不幸的是,GMLib 的作者最近没有太多活动。有谁知道他们是否会在(不久的)将来支持此代码?
我们已经在 Delphi 2007 应用程序中实现了出色的 GMLib 库,一切正常。我们需要使用 Google Maps for Work 许可证(并且需要增加配额)。我们不知道如何在底层 JavaScript 中实现这一点。
不幸的是,GMLib 的作者最近没有太多活动。有谁知道他们是否会在(不久的)将来支持此代码?
最终我们自己找到了答案:
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.
并且资源文件需要重建
现在可以将 GMMap.APIKey 设置为客户端 ID(由 Google 发布,格式为 gme-myclientid。Google 还要求在客户端门户上注册引荐来源网址,它是客户端 ID 和引荐来源网址的组合使用权
(重要的一点)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 控件上没有文档,这将导致上述过程运行。