Mapbox Android学习笔记(11)地图快照

2024-03-26 11:48

本文主要是介绍Mapbox Android学习笔记(11)地图快照,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Snapshotter

Snapshotter 是官方文档的最后一部分内容。用于Android的Mapbox Maps SDK的快照功能生成一个静态地图图像,用于您的Android项目。获取任何Mapbox Map的快照并将图像添加到:

  • 应用程序中的另一个屏幕
  • 一个主屏幕
  • 主屏幕小部件
  • 活动通知
  • ListView / RecyclerView
  • 可以放置 Bitmap 位图的地方

使用快照功能不需要显示Mapbox地图。MapSnapshotter 可以在应用程序的任何地方调用。

除非您已经缓存了地图块,否则设备将需要一个internet连接来下载呈现地图所需的样式和块,从而下载快照。

快照生成可以发生在设备的后台线程上,不会影响用户体验。

这个快照特性与 Mapbox 静态图像API不同。 MapboxStaticMap 类帮助您构建一个URL来请求一个静态地图图像,该图像看起来像一个嵌入式地图,没有交互性或控件。

Taking a map snapshot

MapSnapshotter 构造函数需要一个 MapSnapshotter.Options 对象,示例如下:

// 初始化
MapSnapshotter.Options snapShotOptions = new MapSnapshotter.Options(500, 500);// 设置 snapShotOptions 
snapShotOptions.withRegion(mapboxMap.getProjection().getVisibleRegion().latLngBounds);
snapShotOptions.withStyle(mapboxMap.getStyle().getUrl());// 作为参数传入 mapSnapshotter
MapSnapshotter mapSnapshotter = new MapSnapshotter(this, snapShotOptions);

以下是 MapSnapshotter.Options 中可用的各种设置。您将以与上面代码片段中使用 withRegion()withStyle() 相同的方式使用它们。

  • withApiBaseUrl:指定用于地图API端点的URL。很少需要更改API基本URL。
  • withLocalIdeographFontFamily:在“CJK统一表意文字(CJK Unified Ideographs)”和“汉古音节(Hangul Syllables)”范围内设置用于本地生成表意文字符号的字体族。
  • withCameraPosition:用于快照图像的相机位置。如果还使用 withRegion,则此位置是覆盖的。
  • withLogo:一个布尔标志,用于确定快照图像中是否包含Mapbox徽标。
  • withPixelRatio:使用的像素比。默认值是1。
  • withRegion:要在快照图像中显示的区域。这是应用后的相机位置。
  • withStyle:要在快照图像中使用的地图样式URL。
  • withStyleJson:要使用的地图样式JSON,而不是地图样式URL。

创建 MapSnapshotter 对象后,使用 Start() 启动快照进程。当 MapSnapshot 就绪时,使用 snap.getbitmap() 检索 Bitmap 位图图像。示例如下:

mapSnapshotter.start(new MapSnapshotter.SnapshotReadyCallback() {@Overridepublic void onSnapshotReady(MapSnapshot snapshot) {// Display, share, or use bitmap image how you'd likeBitmap bitmapImage = snapshot.getBitmap();}
});

一旦你有了位图图像,你就可以随心所欲地使用它了。

Mapbox Android 演示应用程序有两个例子,展示了如何使用快照位图图像。详情见官方示例 在通知中使用快照图像 和 分享实时快照地图。

这篇关于Mapbox Android学习笔记(11)地图快照的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/848409

相关文章

Android协程高级用法大全

《Android协程高级用法大全》这篇文章给大家介绍Android协程高级用法大全,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友跟随小编一起学习吧... 目录1️⃣ 协程作用域(CoroutineScope)与生命周期绑定Activity/Fragment 中手

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

Python利用GeoPandas打造一个交互式中国地图选择器

《Python利用GeoPandas打造一个交互式中国地图选择器》在数据分析和可视化领域,地图是展示地理信息的强大工具,被将使用Python、wxPython和GeoPandas构建的交互式中国地图行... 目录技术栈概览代码结构分析1. __init__ 方法:初始化与状态管理2. init_ui 方法:

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

Android 缓存日志Logcat导出与分析最佳实践

《Android缓存日志Logcat导出与分析最佳实践》本文全面介绍AndroidLogcat缓存日志的导出与分析方法,涵盖按进程、缓冲区类型及日志级别过滤,自动化工具使用,常见问题解决方案和最佳实... 目录android 缓存日志(Logcat)导出与分析全攻略为什么要导出缓存日志?按需过滤导出1. 按

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.

Android kotlin中 Channel 和 Flow 的区别和选择使用场景分析

《Androidkotlin中Channel和Flow的区别和选择使用场景分析》Kotlin协程中,Flow是冷数据流,按需触发,适合响应式数据处理;Channel是热数据流,持续发送,支持... 目录一、基本概念界定FlowChannel二、核心特性对比数据生产触发条件生产与消费的关系背压处理机制生命周期

Android ClassLoader加载机制详解

《AndroidClassLoader加载机制详解》Android的ClassLoader负责加载.dex文件,基于双亲委派模型,支持热修复和插件化,需注意类冲突、内存泄漏和兼容性问题,本文给大家介... 目录一、ClassLoader概述1.1 类加载的基本概念1.2 android与Java Class

Android DataBinding 与 MVVM使用详解

《AndroidDataBinding与MVVM使用详解》本文介绍AndroidDataBinding库,其通过绑定UI组件与数据源实现自动更新,支持双向绑定和逻辑运算,减少模板代码,结合MV... 目录一、DataBinding 核心概念二、配置与基础使用1. 启用 DataBinding 2. 基础布局

Android ViewBinding使用流程

《AndroidViewBinding使用流程》AndroidViewBinding是Jetpack组件,替代findViewById,提供类型安全、空安全和编译时检查,代码简洁且性能优化,相比Da... 目录一、核心概念二、ViewBinding优点三、使用流程1. 启用 ViewBinding (模块级