如何删除 TMS WEB Core 中 TWebLeafletMaps 组件上的归因?

问题描述 投票:0回答:1

当我在表单上放置

TWebLeafletMaps
组件时,地图右下角会出现一个小的“传单 | OpenStreetMap 贡献者”归属线,如下所示:

通常在 JavaScript 中,当您初始化传单地图时,您可以设置的选项之一是

attributionControl
属性。您只需将此属性设置为
false
,然后属性就不会像以下 JavaScript 代码中那样显示:

var map = L.map('map', {attributionControl: false}).setView([0, 0]);

但我不能在 Delphi 中执行此操作,因为我不是初始化地图的人。我只需将组件放置到表单上,然后它就会自动创建和设置。我在组件上也没有看到这个的设计时属性。

那么如何禁用或删除

TWebLeafletMaps
组件上的归因线?

我也不希望我网站上的所有传单地图禁用它。所以全局设置或其他东西不是我所需要的。我只需要禁用特定地图的归因线。

delphi leaflet tms-web-core
1个回答
0
投票

我仍然希望有一个隐藏的属性或函数,我可以简单地在

TWebLeafletMaps
组件上调用和使用来禁用归因,但与此同时,我找到了解决方案。

TWebLeafletMaps
组件使用用于归因的
<div>
类呈现
leaflet-control-attribution
。所以我编写了以下Delphi编程程序,可用于启用和禁用归因:

procedure LeafletMapsAttribution(Map: TWebLeafletMaps; Enabled: Boolean);
var
  Attribution: TJSHTMLElement;
  DisplayStyle: String;
begin
  Attribution := TJSHTMLElement(Map.ElementHandle.getElementsByClassName('leaflet-control-attribution')[0]);
  if Enabled then DisplayStyle := 'block' else DisplayStyle := 'none';
  Attribution.style.setProperty('display', DisplayStyle);
end;

它仍然存在,但至少用户不会看到它。

要使用此函数,您只需将组件作为第一个参数传递,并将

Enabled
状态传递给第二个参数。

因此,要隐藏归因,请执行

LeafletMapsAttribution(Map, False)
并显示归因,请执行
LeafletMapsAttribution(Map, True)

© www.soinside.com 2019 - 2024. All rights reserved.