当前位置: 首页 > 工具软件 > Android-GL > 使用案例 >

MapLibre GL Native:适用于 Android 和 iOS 的开源移动 SDK

边永贞
2023-12-01

推出适用于 Android 和 iOS 的新开源地图库——由 MapTiler 团队与亚马逊、Facebook、微软和 MapLibre 社区合作开发。使用 MapLibre SDK,开发人员可以为任何移动设备编写本机应用程序。社区管理确保它永远免费。

Mapbox Maps SDK 的免费替代品

MapLibre Native 是一个用于移动设备的库,允许开发人员在他们的应用程序中显示矢量地图。它是 Android 版 Google Maps SDK 和 iOS 版 Apple MapKit 的替代方案,红十字星收盘什么意思

适用于需要高级功能(例如自定义地图样式、集成自己的业务数据等)的开发人员。

当 Mapbox 决定在 2020 年年中停止为 Android 和 iOS 开发开源移动地图 SDK 时,出现了对独立移动 SDK 的需求。MapTiler 接管了缰绳,于 2020 年 12 月分叉了在 OSS 许可下发布的最后一个版本,并很快以 MapLibre 品牌发布。

MapLibre Native 向后兼容最新的 Mapbox SDK 开源版本(因此迁移您的应用程序只需更改几行代码),但是,有一些特定于 MapLibre SDK 的内容:

  • 已删除对最终用户的跟踪(遥测)

  • OSS 许可证:社区所有权确保它永远保持开源

  • 更新的分发模型:该库现在通过 Android 的 Maven 中央存储库分发,并作为 iOS 的 Swift 包分发

  • 授权的可选用法:访问令牌要求取决于地图提供者及其政策

核心库

适用于 Android 和 iOS 的本机地图 SDK 构建在核心 C++ 库(用 C++14 编写)之上,该库通过采用符合 Mapbox 样式规范的样式表,将它们应用于矢量切片并渲染它们来支持可定制的矢量地图使用 OpenGL 或 Metal。

核心库由基本组件组成,例如具有各种图层类型(栅格、矢量、山体阴影、热图等)的样式对象模型、地图组件、渲染器、网络和线程支持、存储和资源管理以及离线缓存。渲染器使用 OpenGL ES 2.0 技术进行像素完美的地图设计,从抗锯齿字体到多边形模糊,所有硬件加速并针对移动设备进行了优化。核心库是为移动和桌面平台设计的,并与其为 Web 设计的对应库——MapLibre GL JS——一个使用 WebGL 的 JavaScript 库共享 OpenGL 着色器。

为了使交互式地图可用于 Android 和 iOS 上的本机应用程序,核心库被打包到特定于平台的 SDK 中。核心库中的组件由以平台语言(Objective C、Java 等)编写的适配器包装,并在公共 API 中公开给应用程序开发人员。

使用 MapLibre SDK 构建适用于 Android 和 iOS 的应用程序

适用于 Android 和 iOS 的 MapLibre SDK 允许将符合 Mapbox 样式规范的交互式矢量地图嵌入到开发人员需要可定制和交互式地图的任何 Android 和 iOS 应用程序中。SDK 和 MapTiler Cloud 可以添加附加层、可视化 3rd 方数据、微调地图图形外观和实现与用户的丰富交互。

安卓开发者

  • Android 开发人员可以使用 Kotlin 或 Java 构建他们的应用程序。

  • SDK 安装包括向 gradle 脚本添加 maven 包引用和使用 MapLibre MapView 控件实现活动/片段。为了在您的应用程序中加载预定义或自定义地图,可以使用 MapTiler Cloud — 只需创建一个帐户并免费获取您的 API 密钥。cloud.maptiler.com/account/keys

  • 查看“入门”教程:docs.maptiler.com/maplibre-gl-native-android/android-basic-get-started/

  • 了解有关 Android 的MapTiler文档的更多信息docs.maptiler.com/maplibre-gl-native-android

iOS 开发者

  • iOS 开发人员可以在 Swift 或 Objective-C 中实现他们的应用程序,并使用界面构建器或 SwiftUI。

  • SDK 安装包括向项目添加 Swift 包和在用户界面中使用 MapView MapView 控件。为了在您的应用程序中加载预定义或自定义地图,可以使用 MapTiler Cloud — 只需创建一个帐户并免费获取您的 API 密钥。cloud.maptiler.com/account/keys

  • 查看“入门”教程:

  • 对于 SwiftUI:docs.maptiler.com/maplibre-gl-native-ios/ios-swiftui-basic-get-started/

  • 对于 UIKit:docs.maptiler.com/maplibre-gl-native-ios/ios-uikit-basic-get-started/

  • 了解有关 iOS 的MapTiler文档的更多信息docs.maptiler.com/maplibre-gl-native-ios

与亚马逊、Facebook、微软和 MapLibre 社区合作

MapLibre 社区由许多个人和公司组成。MapTiler、亚马逊、Facebook 和微软是最显眼的;Christian Sturm、Jukka Hietanen、Nuno Goncalves、Petr Pokorný、Rob Chohan、Szymon Ulewicz、Yuri Astrakhan 是那里最活跃的开发人员之一。

对 Metal Framework 的支持,Apple 在单个 3D 图形和着色器 API 中替代 OpenGL 和 OpenCL,已经在测试版中可用——这要归功于亚马逊工程师的巨大贡献。

该团队还致力于配置改进,将删除硬编码的 Mapbox 配置,并将公开 API 以供应用程序开发人员在需要时提供自定义配置或使用预定义的矢量地图提供程序配置,这些配置随其标准样式一起提供,以便开发人员不会需要查找确切的 URL,但只使用样式名称。完全配置 SDK 的能力也消除了原始 mapbox SDK 中非 mapbox 地图离线缓存的障碍,其中非 mapbox 资源与 API 密钥和图块 URL 子域一起缓存,导致离线缓存中的重复和其他问题。消除这些问题是可能的,因为后端 URL、规范到规范化的 URL 转换、字形模板、精灵 URL 等将是完全可配置的。

 类似资料: