Mapbox Android学习笔记(8)离线地图

Offline

通常,您可能会发现您的用户群大部分时间都不在网格上。Maps SDK允许您下载和存储预先选择的区域,以便在设备脱机时使用。下载地图的结果是使用下载区域内的style、tile和其他资源生成功能齐全的地图。

Offline Plugin
用户的设备并不总是有足够强大的互联网连接来下载和查看地图块。您可能想要在Android项目中构建一个离线模式来解释这种情况。Android的Mapbox离线插件是一种方便的方式,可以将信息发送到Maps SDK的离线管理器类,并使用后台服务中的管理器下载地图块供离线使用。一旦离线下载区域被定义并初始化,插件将为您处理所有其他事情。因为插件使用服务,所以即使应用程序在后台运行,下载也会继续。

限制

一个应用程序可以下载多个区域供离线使用,但所有下载区域的离线下载总量都有一个最大平铺计数上限。SDK将tile ceiling设置为6000个tile。使用我们的Tile Count Estimator来计算脱机用例所需的Tile数量。在M25变焦等级为0-15的范围内,六千块tile覆盖了一个大致相当于大伦敦的区域;而在变焦等级为0-9的范围内,则覆盖了邻近的美国。磁盘上这些块的大小将根据所选的样式而变化。

Maps SDK不限制可以创建的离线区域的数量。您的mapbox支持的应用程序将重用多个区域所需的tile和资源,从而节约网络流量和磁盘空间。

SDK也不限制离线区域的下载速度,也不限制离线资源使用的磁盘空间。这些限制将取决于移动设备的存储容量和所连接网络的速度。

我们的服务条款不允许您或最终用户重新分发从Mapbox服务器下载的离线地图。

Tile的自动更新

Maps SDK在任何连接可用时下载tile,包括通过常规移动数据(2G、3G、4G等)下载。因为只有单独的高度优化的tile下载,所以在已经下载的区域打开地图,不会有用户意外下载100 MB的风险。除非用户正在浏览100 MB大小的tile。

当SDK自动更新离线地图贴片时,离线区域不会重新下载。离线tile更新过程与常规map tile的更新过程相同:只有当tile有新版本时才下载map tile。

定义一个区域

在脱机使用某个区域之前,必须下载该区域所需的资源。根据在创建区域时指定的参数,SDK计算所有资源需求,比如覆盖该区域的字体、样式和向量块。如果脱机数据库中的多个区域包含字体和样式,则在下载其他区域时不会重新下载这些字体和样式。

首先,您需要获得 offlineManager 实例,定义要下载的区域,最后创建 definition 对象。注意几件事很重要:

  • 离线地图样式必须匹配用于mapView的样式
  • 这个定义需要设备的屏幕密度,您应该从activities的资源中获得这个定义
  • 下载使用的边界不能超过 6000 个平铺限制

示例:

// Set up the OfflineManager
OfflineManager offlineManager = OfflineManager.getInstance(MainActivity.this);

// Create a bounding box for the offline region
LatLngB
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值