答案 0 :(得分:9)
标记的答案是错误的,incanus指的是较旧的,现已弃用的SDK。归因是必需的,因为:
如果您的地图不使用任何这些数据源,并且不使用Mapbox的设计,例如Streets,Light或Outdoors,那么您无需提供归因。
在Android中,如果您需要在mapview XML中使用正确的属性,则可以将属性移动到其他位置。如果您的地图不适合上面列出的任何情况,那么删除属性可以用XML完成,如下所示:
mapbox:attribution_enabled="false"
在隐藏Mapbox徽标时,所有非企业帐户都需要在使用任何Mapbox地图时显示Mapbox徽标。因此,您无法将其删除。
来源:https://www.mapbox.com/help/attribution/, https://www.mapbox.com/help/mapbox-logo/
答案 1 :(得分:7)
只需停用归因和徽标,如下所示:
mapboxMap.getUiSettings().setAttributionEnabled(false);
mapboxMap.getUiSettings().setLogoEnabled(false);
答案 2 :(得分:2)
请尝试一下,
mapView.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(MapboxMap mapboxMap) {
mapboxMap.animateCamera(CameraUpdateFactory.newCameraPosition(new CameraPosition.Builder()
.target(new LatLng(36,50))
.zoom(10)
.tilt(45.0)
.build()),
10000);
mapboxMap.getUiSettings().setAttributionEnabled(false);
mapboxMap.getUiSettings().setLogoEnabled(false);
}
});
答案 3 :(得分:1)
要隐藏Mapbox归因和徽标,我们可以通过反射访问相应的视图,然后使用以下方法更改其可见性:
private void hideAttributionsView(){
UiSettings uiSettings = mMapBoxMap.getUiSettings();
try {
Field attributionsViewField = UiSettings.class.getDeclaredField("attributionsView");
attributionsViewField.setAccessible(true);
Field logoViewField = UiSettings.class.getDeclaredField("logoView");
logoViewField.setAccessible(true);
View attributionsView = (View) attributionsViewField.get(uiSettings);
View logoView = (View) logoViewField.get(uiSettings);
attributionsView.setVisibility(View.GONE);
logoView.setVisibility(View.GONE);
} catch (Exception e) {
// Nothing
}
}