动态设置Google Maps Api Key for GMLib组件

巴库

过去,这是有关为gmlib组件设置Google Maps Api Key的问题。提供的解决方案是更改'map.html'头元素,然后重新编译资源(rc.cmd)并重新编译组件。这是一个非常静态的解决方案,有时在运行时动态设置api密钥会更方便,例如,当某人想为不同的项目使用不同的密钥时(api密钥可以存储在项目的ini / property文件中)。我认为最好的方法是GMMap组件的属性和构造函数的新参数。我在google maps javascript api中搜索了一些功能,例如更改/设置api键,但没有找到任何功能。看来api键必须“硬编码”到html文件的head标签中,并且没有JavaScript函数可以对其进行更改。

任何想法如何在运行时设置api密钥?

例如,我发现此链接更改了文档本身:是否可以通过JavaScript动态更改/设置Google Maps API密钥?

如何在gmlib中利用它?

提前致谢。

学员

确实,此解决方案对于GMLib并不是必需的,因为当您(他的组件)从资源文件加载HTML映射时,可以在加载到TWebBrowser之前通过代码更改此行(可以添加键)。

您需要在TGMMap中添加键属性,并在GetBaseHTMLCode方法中考虑此属性。

为了轻松更改此键,您可以从HTML代码更改此行

<script type="text/javascript" src="https://maps.google.com/maps/api/js?sensor=false&libraries=weather,panoramio,geometry,drawing"></script>

通过这个

<script type="text/javascript" src="https://maps.google.com/maps/api/js?%ssensor=false&libraries=weather,panoramio,geometry,drawing"></script>

并为此更改GetBaseHTMLCode方法

function TCustomGMMap.GetBaseHTMLCode: string;
var
  List: TStringList;
  Stream: TResourceStream;
begin
  Result := '';

  List := TStringList.Create;
  try
    try
      Stream := TResourceStream.Create(HInstance, RES_MAPA_CODE, RT_RCDATA);
      List.LoadFromStream(Stream);
      Result := List.Text;
      Result := Format(Result, [KeyProerty]); // <== add this line
    finally
      if Assigned(Stream) then FreeAndNil(Stream);
      if Assigned(List) then FreeAndNil(List);
    end;
  except
    raise Exception.Create(GetTranslateText('No se ha podido cargar el recurso', Language));
  end;
end;

此更改未经测试,但这是这个主意:-)

我将其放入本周的待办事项列表中;-)

问候

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

动态设置GMLib的Google Maps Api密钥

来自分类Dev

iOS-ObjC Google Maps Api Key

来自分类Dev

Google Maps JavaScript API:动态设置KML层样式

来自分类Dev

动态加载Google Maps API

来自分类Dev

动态加载Google Maps API

来自分类Dev

发布版本中的Google Maps API Key不起作用

来自分类Dev

react-google-maps:如何动态设置多个 StandaloneSearchBox 组件的 Google 容器 (.pac-container) 的样式?

来自分类Dev

Google Maps API:动态加载标记

来自分类Dev

使用 AngularJS 动态加载 Google Maps API

来自分类Dev

Google Maps API Markerclusterer Plus设置图标

来自分类Dev

设置初始中心并放大Google Maps API

来自分类Dev

Google Maps API RefererNotAllowedError

来自分类Dev

Google Maps API DeletedApiProjectMapError

来自分类Dev

Google Maps Api许可

来自分类Dev

Google Maps Api

来自分类Dev

Google Maps REST API

来自分类Dev

Google Maps API请求

来自分类Dev

Google Maps Directions API

来自分类Dev

Google Maps API参数

来自分类Dev

Api Key可将我的带有Google Maps的应用发布到Google Play

来自分类Dev

如何动态设置Google Maps样式

来自分类Dev

如何动态设置Google Maps样式

来自分类Dev

无法安装“ plugin.google.maps”:错误:缺少变量:API_KEY_FOR_ANDROID

来自分类Dev

Google Maps API V3-动态添加控件

来自分类Dev

如何使用Google Maps API动态删除标记?

来自分类Dev

动态更改iOS版Google Maps API的响应语言

来自分类Dev

使用Android版Google Maps API实时动态跟踪路线

来自分类Dev

动态图片+地理位置(Google Maps API?)

来自分类Dev

Google Maps API v2 Android中的动态缩放