如何移除TMS WEB Core中TWebLeafletMaps组件的署名信息?
如何在Delphi的TWebLeafletMaps组件中隐藏特定地图的署名行
在Delphi中使用TWebLeafletMaps组件时,默认会在地图右下角显示“Leaflet | OpenStreetMap contributors”署名行,且组件自动完成地图初始化,没有直接的设计时属性可以关闭这个署名。要仅针对当前地图移除该署名(而非全局禁用),可以通过组件的OnMapReady事件结合JavaScript来实现:
- 第一步:选中目标TWebLeafletMaps组件,在Delphi的事件面板中找到
OnMapReady事件,双击生成事件处理函数。 - 第二步:在事件函数中调用组件的
ExecuteJavascript方法,执行Leaflet的API代码来移除attribution控件。
示例Delphi代码:
procedure TYourForm.WebLeafletMaps1MapReady(Sender: TObject); begin // 移除当前地图的署名控件 WebLeafletMaps1.ExecuteJavascript('map.attributionControl.remove();'); end;
也可以选择禁用该控件(而非移除),代码如下:
procedure TYourForm.WebLeafletMaps1MapReady(Sender: TObject); begin WebLeafletMaps1.ExecuteJavascript('map.attributionControl.disable();'); end;
说明
TWebLeafletMaps组件初始化后,在前端JavaScript环境中默认暴露名为map的地图实例对象,OnMapReady事件触发时地图已经完全加载完成,此时执行上述JS代码只会作用于当前这个地图组件,不会影响其他Leaflet地图实例。如果你的组件使用的地图实例变量名不是map,可以通过浏览器开发者工具查看页面中的JS变量,替换成对应的名称即可。
内容的提问来源于stack exchange,提问作者Shaun Roselt
相关产品推荐
相关产品推荐

