Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从左下角删除地图盒徽标?_Javascript_Mapbox - Fatal编程技术网

Javascript 如何从左下角删除地图盒徽标?

Javascript 如何从左下角删除地图盒徽标?,javascript,mapbox,Javascript,Mapbox,我正在通过MapBox.js脚本将一个MapBox映射嵌入我的html页面,如下所示: L.mapbox.accessToken = 'pk.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxx'; var map = L.mapbox.map('map', 'xxxxx.xxxxxxxx', { zoomControl: false }); 这将生成如下所示的贴图: 如何删除左下角的“地图盒”徽标?您只能完全删除不包

我正在通过MapBox.js脚本将一个MapBox映射嵌入我的html页面,如下所示:

L.mapbox.accessToken = 'pk.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.xxxxxxxxxxxxxxxxxxxxxx';
var map = L.mapbox.map('map', 'xxxxx.xxxxxxxx', {
    zoomControl: false
});
这将生成如下所示的贴图:


如何删除左下角的“地图盒”徽标?

您只能完全删除不包含地图盒(街道、地形、卫星)或OpenStreetMap图层的地图上的属性。这是因为这些层中包含的OpenStreetMap和DigitalGlobe数据在法律上要求归属

如果地图不包含这些图层,可以通过将“信息”控件设置为false来删除默认属性:

var map = L.mapbox.map('map', 'examples.map-8ced9urs', {attributionControl: false});
您可以使用L.control.Attribute构造函数添加自己的属性

var credits = L.control.attribution().addTo(map);
credits.addAttribution('Credits: Penny Dog Mapping Co.');
但是,您可以移动属性。如果您使用的图层需要属性,但希望将其移动到页面的其他部分,则可以在页面的其他位置插入此HTML片段,如页脚:

<a href='https://www.mapbox.com/about/maps/' target='_blank'>Maps &copy; Mapbox &copy; OpenStreetMap</a>

根据。除非您在标准或特优定价计划中,否则根据服务条款,需要使用MapBox徽标。

这可能违反MapBox服务条款。添加此css将删除它

.mapbox-logo{
    display: none !important;
}

我找到了这个解决方案,它可以保持mapbox文字标记(=徽标)和文本属性在适当的位置,但不会干扰界面的其余部分

此解决方案不违反服务条款

.leaflet-bottom, .leaflet-top {
    z-index: 0 !important; // This is 1000 by default
    position: absolute;
    pointer-events: none;
}
这对我很有用:

.mapboxgl-ctrl-logo {
    display: none !important;
}

在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 });

在为
map
创建对象时,只需添加
attributecontrol:false
,就可以帮助您隐藏服务条款

const map=new mapboxgl.map({
容器:“映射”,
风格:'mapbox://styles/mapbox/streets-v11',
属性控制:false
});
您可以试试这个

@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]
        }
    }

这只会删除右下角的版权,而不会删除左下角的徽标。你是对的。不幸的是,这是故意的。他们希望您支付更高级别的许可证以将其删除。正确。我不是在鼓吹违反ToS——我只是说这是可能的:)我想更有趣的问题是,如何防止他的行为?嗨,法哈德,谢谢你的贡献。请编辑您的答案,以包含代码段,而不是链接到pastebin,好吗?如果你再加一点解释就更好了。谢谢,请继续!。mapboxgl ctrl徽标