default·

Mapbox比例尺与logo自定义指南

本文介绍了在Mapbox Android中调整比例尺和logo的方法。通过ScaleBar组件可自定义比例尺的文本大小(如10.sp)、宽度比例(0.05f)和位置(BottomStart)。隐藏logo只需在参数中传入空Box组件。示例代码展示了如何初始化MapboxMap并应用这些调整,包括设置初始视角(缩放12.3,杭州坐标)以及隐藏归属信息。这些方法能满足不同场景下的地图UI定制需求。
mapbox安卓
  • 效果图 在使用 Mapbox Android 版本时,可以通过以下方式调整 MapboxMap 的比例尺和 logo:

在 MapboxMap 初始化时,设置比例尺和 logo 的位置和样式。通过 ScaleBar 组件自定义比例尺的文本大小、宽高比和对齐方式。在示例中,将比例尺的文本大小设置为 10.sp,宽高比为 0.05f,并将其放置在左下角。通过将 logo 参数设置为一个空的 Box 组件,可以隐藏 logo。

MapboxMap( modifier = Modifier.fillMaxSize(), mapViewportState = rememberMapViewportState { setCameraOptions { zoom(zoom = 12.3) center(center = Point.fromLngLat(longitude = 120.06022, latitude = 30.37818)) pitch(pitch = 0.0) bearing(bearing = 0.0) } }, mapState = mapState, scaleBar = { ScaleBar( textSize = 10.sp, // 调小文字(默认约14sp) ratio = 0.05f, // 宽度设为可用空间一半 alignment = Alignment.BottomStart // 设置位置 ) }, logo = {}, // 隐藏 logo attribution = {} // 隐藏归属信息 )

调整比例尺和 logo 的方法

  1. 比例尺调整
    • 使用 ScaleBar 组件,并通过参数 textSizeratioalignment 来调整比例尺的显示效果。
    • textSize 控制比例尺文字的大小,ratio 控制比例尺的宽度与可用空间的比例,alignment 控制比例尺的位置。
  2. Logo 隐藏
    • logo 参数中传入一个空的 Box 组件,即可隐藏地图上的 logo。

示例代码

MapboxMap( modifier = Modifier.fillMaxSize(), mapViewportState = rememberMapViewportState { setCameraOptions { zoom(zoom = 12.3) center(center = Point.fromLngLat(longitude = 120.06022, latitude = 30.37818)) pitch(pitch = 0.0) bearing(bearing = 0.0) } }, mapState = mapState, scaleBar = { ScaleBar( textSize = 10.sp, // 调小文字(默认约14sp) ratio = 0.05f, // 宽度设为可用空间一半 alignment = Alignment.BottomStart // 设置位置 ) }, logo = {}, // 隐藏 logo attribution = {} // 隐藏归属信息 )

通过这种方式,你可以灵活地调整 MapboxMap 的比例尺和 logo 的显示效果,以满足不同的应用需求。