android - Mapbox GL 使用外部 map

标签 android openstreetmap mapbox mapbox-gl-js mapbox-gl

我想在我的 Android 应用程序中使用 Mapbox GL。这项服务即将发布,我有一个关于使用渲染器的棘手问题。

我喜欢渲染器本身,但我真的想在应用程序中使用我自己的 map 数据(不是 Mapbox 提供的付费数据)。例如,我想自己解析 OpenStreetMaps 数据,以某种方式对其进行自定义,然后放入渲染器中以在我的应用程序中显示它。

现在的问题是:在使用 Mapbox GL 时是否可以使用我自己的 map 数据?或者它只能与 Mapbox 数据一起使用?

提前感谢您的帮助。也许您知道针对此问题的其他任何完善的解决方案?问题是,我想要矢量切片,而不是光栅切片。并且此项目计划稍后针对 iOS 进行开发..

最佳答案

您可以将 MapBox 开源 SDK 与您自己的图 block 一起使用。适用于 Android、iOS 或 Node.JS 的 Mapbox Native 渲染器可以直接用于在 MapBox.com 平台之外托管的图 block 。

请参阅示例移动应用程序“OSM2VectorTiles”从自定义服务器或从本地嵌入式 MBTiles 加载矢量切片。

诀窍是将 API 中的 style 属性指向您自己的 JSON 样式文件 - 它从您自己的服务器请求矢量切片。一个例子: 参见 https://gist.github.com/klokan/3eee87899644f5d82b3946bf0cd1e176

查看项目 http://www.openmaptiles.org/ ,您可以在其中下载准备好使用由 OpenStreetMap 制作的矢量图 block - 或者查看该项目的文档,了解如何生成您自己的自定义矢量图 block 。

矢量图 block 本身的托管在 https://openmaptiles.org/docs/ 中描述。或 https://gis.stackexchange.com/questions/125037/self-hosting-mapbox-vector-tiles

您可能需要在某个地方托管 Assets (字体字形 + Sprite )和 JSON 样式本身 - 或者将它们直接嵌入到您的移动应用程序中。

如果您想在服务器上使用相同的 JSON 样式对矢量切片进行栅格化 - 对于与旧 Web 客户端(Leaflet,...)兼容的 Web 应用程序或静态 map 或具有与您相同外观和感觉的打印输出手机app map ,可以查看https://github.com/klokantech/tileserver-gl

关于android - Mapbox GL 使用外部 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31487520/

相关文章:

Android SeekBarPreference 自定义 View

android - 如何在其他安装了我的 android 应用程序的手机上单击按钮时发送我的 android 应用程序的通知

javascript - 错误位置的 Mapbox 标记

android - 从站点抓取信息并放入列表?

Android maven 插件 : renameManifestPackage results in Resources$NotFoundException

r - 在 R 的传单中,可以使用列变量来改变 labelOption 大小、颜色等的大小吗?

language-agnostic - 如何从特定宽度的简单线条计算多边形点?

iOS - 如何在我的 map 中包含街道名称?

Mapbox - 动态更改集群颜色

javascript - Mapbox NavigationViewOptions 和 NavigationLauncherOptions