【问题标题】:Draw a marker in Mapbox Android from a custom external image URL从自定义外部图像 URL 在 Mapbox Android 中绘制标记
【发布时间】:2019-01-24 12:10:57
【问题描述】:

我试图想办法在 Mapbox Android SDK 中绘制标记,但所有示例都显示了如何使用 DRAWABLE 文件夹中的自定义图像。

我想从自定义 URL 放置自定义 SVG 图标。如果不是 SVG,至少 PNG 是为了透明目的。

有可能吗?

我发现的例子和这个类似:

Bitmap icon = BitmapFactory.decodeResource(
    MainActivity.this.getResources(), R.drawable.custom_marker);
    mapboxMap.addImage(MARKER_IMAGE, icon);

【问题讨论】:

  • 您能说明一下您使用的是哪个版本吗?在最新的 semver 版本(7.0.0)中语法略有变化,所以这个问题的答案将取决于此。
  • 我们使用的是 6.7

标签: android image icons mapbox marker


【解决方案1】:

需要注意的是,在 v7.0.0 中,您可以选择使用 Annotation Plugin,它提供了一种更直观、面向对象的方式来设置图标/注释层,这是我推荐的方法:

您发布的代码 sn-p 是 Style -> Source -> Layer 流程的一部分,用于 Mapbox 的 SDK 中的运行时样式。出于您的目的,特别是如果您使用相同的图标向地图添加多个标记,您应该通过SymbolLayer 添加标记。有一个工作示例说明SymbolLayer 语法如何工作here(它还包括一些用于向标记添加交互性的代码)。您还可以在 Mapbox 的marker playground 上获得一些快速的样板代码。

回答您的主要问题: SDK 不包含任何将外部 SVG 或 PNG 直接加载为 SymbolLayer 的 iconImage 的便捷方法,因此您需要使用像 @987654324 这样的库@ 或Picasso 检索图像并将其转换为位图,然后将其传递给mapboxMap.addImage()

【讨论】:

  • 还值得注意的是,直接 URL 支持作为 Mapbox 的 GL JS 库的一个可能功能正在争论中(请参阅此 GitHub 票证上的选项 B)github.com/mapbox/mapbox-gl-js/issues/7587)。如果被 GL JS 团队采用,这个功能很可能会被添加到原生 SDK 的路线图中。
  • mapboxMap 在 android 上没有 addImage。您需要通过样式 style.addImage(string, bitmap) 添加图像
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-02
  • 1970-01-01
  • 1970-01-01
  • 2022-12-15
相关资源
最近更新 更多