失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 高德离线数据api_使用离线地图-创建地图-开发指南-iOS 地图SDK | 高德地图API

高德离线数据api_使用离线地图-创建地图-开发指南-iOS 地图SDK | 高德地图API

时间:2022-02-06 01:17:25

相关推荐

高德离线数据api_使用离线地图-创建地图-开发指南-iOS 地图SDK | 高德地图API

高德3D 地图 SDK支持离线地图功能。(2D 地图 SDK 不支持离线地图功能)

离线地图可满足在无网络环境下查看地图信息的需求,在设备本地有离线地图数据的情况下,SDK 会优先加载离线地图。

离线数据项 MAOfflineItem 包含城市编码、城市名称、数据状态等离线地图数据包的基本信息,是离线数据省信息(MAOfflineProvince)和离线数据城市信息(MAOfflineCity)的基类。离线数据城市信息(MAOfflineCity)又派生出三个子类,分别是全国概要图(MAOfflineItemNationWide)、直辖市(MAOfflineItemMunicipality)和普通城市(MAOfflineItemCommonCity)。

上述各类的关系如下图所示,也可以参见参考手册中的描述。

离线地图UI组件(推荐)

自3D地图SDK v 5.7.0起,新增离线地图UI组件,组件涵盖城市下载、暂停、更新、删除以及关键字城市查询等功能,是高德地图客户端离线地图功能的一个子集,UI交互风格上靠拢高德地图app,也考虑到与开发者应用UI的融合问题,尽可能的保持了简约极致。以下方法实现一键完成离线地图开发:

UIViewController *detailViewController = [MAOfflineMapViewController sharedInstance];

[self.navigationController pushViewController:detailViewController animated:YES];

UI示意

自定义离线地图

开始下载

获取离线数据项的示例代码如下:

[[MAOfflineMap sharedOfflineMap] downloadItem:item shouldContinueWhenAppEntersBackground:YES downloadBlock:^(MAOfflineMapDownloadStatus downloadStatus, id info) {

/* Manipulations to your application’s user interface must occur on the main thread. */

}

MAOfflineMap.shared().downloadItem(item, shouldContinueWhenAppEntersBackground: true) { (downloadItem, downloadStatus, info) in

//通过获取info和status对UI进行操作

}

解析离线地图数据

解析离线数据项的示例代码如下:

self.cities = [MAOfflineMap sharedOfflineMap].cities;//普通城市和直辖市

self.provinces = [MAOfflineMap sharedOfflineMap].provinces;//省

self.municipalities = [MAOfflineMap sharedOfflineMap].municipalities;//直辖市

self.cities = MAOfflineMap.shared().cities

self.provinces = MAOfflineMap.shared().provinces

self.municipalitiesMAOfflineMap.shared().municipalities

暂停离线地图下载

示例代码如下:

[[MAOfflineMap sharedOfflineMap] pauseItem:item];

MAOfflineMap.shared().pause(item)

停止所有下载

停止所有离线地图下载的方法为:

[[MAOfflineMap sharedOfflineMap] cancelAll];

MAOfflineMap.shared().cancelAll()

检查更新

通过如下代码检查离线地图数据是否存在更新,检查更新操作会同时将本地离线地图配置文件更新成最新的,App 用户可依据最新的配置文件下载新版离线地图数据。

[[MAOfflineMap sharedOfflineMap] checkNewestVersion:^(BOOL hasNewestVersion) {

if (!hasNewestVersion)

{

return;

}

//更新处理

}];

MAOfflineMap.shared().checkNewestVersion { (hasNewVersion) in

if !hasNewVersion {

return

}

// 更新处理

}

删除离线地图

单条删除

[[MAOfflineMap sharedOfflineMap] deleteItem:item];

MAOfflineMap.shared().delete(item)

全部删除

/**

* 清除所有在磁盘上的离线地图数据, 之后调用[mapView reloadMap]会使其立即生效

*/

- (void)clearDisk;

MAOfflineMap.shared().clearDisk()

如果觉得《高德离线数据api_使用离线地图-创建地图-开发指南-iOS 地图SDK | 高德地图API》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。