确实,这个解决方案在 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;
此更改未经测试,但这是想法:-)
我把它放到了本周的 TODO 列表中;-)
问候