Style:当前地图样式的代理对象
在 implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.0' 里,内置提供了
Style.MAPBOX_STREETS : 完整的底图
Style.OUTDOORS : 适合户外活动的通用样式
Style.LIGHT : 数据可视化的微妙灯光背景
Style.DARK : 用于数据可视化的细微深色背景
Style.SATELLITE : 美丽的全球卫星和航空影像图层
Style.SATELLITE_STREETS : 具有不引人注目的标签的全球卫星和航空影像
Style.TRAFFIC_DAY : 基于实时交通拥堵数据的彩色道路。
Style.TRAFFIC_NIGHT : 基于实时交通拥堵数据的颜色编码道路,旨在在弱光情况下最大程度地提高可读性。
一、设置Style
1.设置地图样式为Style.MAPBOX_STREETS,你可以替换为内置的其他url.
//加载新的地图样式
mapboxMap.setStyle(Style.MAPBOX_STREETS, new Style.OnStyleLoaded() {
@Override
public void onStyleLoaded(@NonNull Style style) {
}
});
2.引用资产文件夹中的本地JSON样式文件,并将其作为字符串参数传递
// 引用资产文件夹中的本地JSON样式文件,并将其作为字符串参数传递
mapboxMap.setStyle(new Style.Builder().fromUri("asset://local_style_file.json"), new Style.OnStyleLoaded() {
@Override
public void onStyleLoaded(@NonNull Style style) {
Toast.makeText(StyleActivity.this, "已切换为本地JSON样式文件", Toast.LENGTH_SHORT).show();
}
});
3.引用自定义的Mapbox托管样式
//使用自定义的Mapbox托管样式。
mapboxMap.setStyle(new Style.Builder().fromUri("mapbox://styles/mapbox/cj3kbeqzo00022smj7akz3o1e"), new Style.OnStyleLoaded() {
@Override
public void onStyleLoaded(@NonNull Style style) {
Toast.makeText(StyleActivity.this, "已切换为自定义的Mapbox托管样式", Toast.LENGTH_SHORT).show();
}
});
二、获取Style
1.持有全局变量
mapboxMap.setStyle(Style.MAPBOX_STREETS, new Style.OnStyleLoaded() {
@Override
public void onStyleLoaded(@NonNull Style style) {
this.style = style;
}
});
2.异步获取地图的Style
mapboxMap.getStyle(new Style.OnStyleLoaded() {
@Override
public void onStyleLoaded(@NonNull Style style) {
}
});