如何从左下角删除 MapBox 徽标?
Posted
技术标签:
【中文标题】如何从左下角删除 MapBox 徽标?【英文标题】:How to remove MapBox logo from bottom left corner? 【发布时间】:2015-07-30 22:53:31 【问题描述】:我正在通过 mapbox.js 脚本在我的 html 页面中嵌入一个 MapBox 地图,如下所示:
L.mapbox.accessToken = 'pk.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxx';
var map = L.mapbox.map('map', 'xxxxx.xxxxxxxx',
zoomControl: false
);
这会产生这样的地图: http://s4.postimg.org/58m4aeb8d/mapbox.png
如何去掉左下角的“Mapbox”标志?
【问题讨论】:
【参考方案1】:您只能完全删除不包含 Mapbox(街道、地形、卫星)或 OpenStreetMap 图层的地图上的属性。这是因为这些图层中包含的 OpenStreetMap 和 DigitalGlobe 数据在法律上需要归属。
如果您的地图不包含这些图层,您可以通过将信息控件设置为 false 来移除默认属性:
var map = L.mapbox.map('map', 'examples.map-8ced9urs', attributionControl: false);
您可以使用 L.control.attribution 构造函数添加自己的属性。
var credits = L.control.attribution().addTo(map);
credits.addAttribution('Credits: Penny Dog Mapping Co.');
但是,您可以移动属性。如果您正在使用需要署名的图层,但想将其移动到页面的不同部分,您可以在页面的其他位置插入此 HTML sn-p,例如页脚:
<a href='https://www.mapbox.com/about/maps/' target='_blank'>Maps © Mapbox © OpenStreetMap</a>
【讨论】:
这只会删除右下角的版权,而不是左下角的徽标。 你是对的。不幸的是,这是设计使然。他们希望您支付更高级别的许可证才能将其删除。【参考方案2】:这可能违反 MapBox 服务条款。添加此 css 将删除它...
.mapbox-logo
display: none !important;
【讨论】:
.mapboxgl-ctrl-logo【参考方案3】:这对我有用:
.mapboxgl-ctrl-logo
display: none !important;
【讨论】:
【参考方案4】:根据https://www.mapbox.com/plans/。除非您使用标准或高级定价计划,否则根据服务条款需要 MapBox 徽标。
【讨论】:
正确。我不是在提倡违反 ToS - 我只是说有可能这样做:) 我想我更有趣的问题是如何防止他的?【参考方案5】:我找到了这个解决方案,它可以保留 mapbox 字标 (=logo) 和文本属性,但不会干扰界面的其余部分。
此解决方案不违反服务条款!
.leaflet-bottom, .leaflet-top
z-index: 0 !important; // This is 1000 by default
position: absolute;
pointer-events: none;
【讨论】:
【参考方案6】:在 style.css 中粘贴这段代码
.mapbox-logo display: none; .mapboxgl-ctrl-logo display: none !important; .mapbox-improve-map display: none; .mapboxgl-ctrl-compass display: none;
是javascript文件添加这个吗..
const map = new mapboxgl.Map( container: this.mapContainer, style: 'mapbox://styles/mapbox/dark-v10', center: [this.state.lng, this.state.lat], zoom: this.state.zoom, attributionControl: false );
帮助您隐藏服务条款
【讨论】:
您好 fahad,感谢您的贡献。您能否编辑您的答案以包含您的代码 sn-p 而不是链接到 pastebin?如果你也添加一点解释,那就更好了。感谢并继续使用 ***!【参考方案7】:在为map
创建对象时,只需添加attributionControl: false
const map = new mapboxgl.Map(
container: 'map',
style: 'mapbox://styles/mapbox/streets-v11',
attributionControl: false
);
【讨论】:
【参考方案8】:如果您使用Mapbox Static Images API,您可以通过将以下参数添加到您的源 URL 来轻松删除 Mapbox 徽标和 OpenStreetMaps 属性:
&attribution=false&logo=false
示例(将 xxx 替换为您自己的访问令牌):
https://api.mapbox.com/styles/v1/mapbox/outdoors-v11/static/-122.385,37.7175,12,0/300x300?access_token=xxx
请记住,法律仍要求您在网页或文档的其他位置include proper attribution。
【讨论】:
【参考方案9】:你可以试试这个
@IBOutlet weak var mapView: MGLMapView!
didSet
mapView.styleURL = URL(string: "mapbox://styles/mapbox/dark-v10")
mapView.attributionButton.alpha = 0 // to remove info icon on right
mapView.logoView.isHidden = true // to remove mapBox logo on left
mapView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
【讨论】:
以上是关于如何从左下角删除 MapBox 徽标?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 mapbox 解决 Surface API 中的 CORS 问题?
Mapbox Android:如何获取从当前位置到您选择的目的地的路线?