MapBox Android如何隐藏mapbox标签

时间:2016-05-30 08:00:51

标签: android mapbox

Screenshot

如何在左下角隐藏地图信息标签?

4 个答案:

答案 0 :(得分:9)

标记的答案是错误的,incanus指的是较旧的,现已弃用的SDK。归因是必需的,因为:

  • Mapbox的地图设计受版权保护
  • OpenStreetMap数据源的ODbL许可证需要归因
  • 我们的卫星,街道和地形图中使用的其他数据来源也需要归档

如果您的地图不使用任何这些数据源,并且不使用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
    }
}