从自定义外部图像 URL 在 Mapbox Android 中绘制标记
Draw a marker in Mapbox Android from a custom external image URL
我正在尝试想出一种在 Mapbox Android SDK 中绘制标记的方法,但所有示例都显示了如何使用 DRAWABLE 文件夹中的自定义图像。
我想放置来自自定义 URL 的自定义 SVG 图标。如果不是 SVG,至少 PNG 出于透明目的。
可以吗?
我找到的例子与这个相似:
Bitmap icon = BitmapFactory.decodeResource(
MainActivity.this.getResources(), R.drawable.custom_marker);
mapboxMap.addImage(MARKER_IMAGE, icon);
需要注意的是,在 v7.0.0 中,您可以选择使用 Annotation Plugin,它提供了一种更直观、面向对象的方式来设置您的 icon/annotation 层,这是我的推荐方法:
您发布的代码片段是 Style -> Source -> Layer
流程的一部分,用于 Mapbox SDK 中的运行时样式设置。出于您的目的,特别是如果您使用相同的图标向地图添加多个标记,您应该通过 SymbolLayer
添加标记。有一个 SymbolLayer
语法如何工作的工作示例 here (it also includes some code for adding interactivity to your markers). You can also get some quick boilerplate code over at Mapbox's marker playground。
回答您的主要问题:SDK 不包含任何将外部 SVG 或 PNG 直接加载为 SymbolLayer 的 iconImage 的便捷方法,因此您需要使用像 Glide or Picasso 这样的库,用于检索图像并将其转换为位图,然后再将其传递给 mapboxMap.addImage()
。
我正在尝试想出一种在 Mapbox Android SDK 中绘制标记的方法,但所有示例都显示了如何使用 DRAWABLE 文件夹中的自定义图像。
我想放置来自自定义 URL 的自定义 SVG 图标。如果不是 SVG,至少 PNG 出于透明目的。
可以吗?
我找到的例子与这个相似:
Bitmap icon = BitmapFactory.decodeResource(
MainActivity.this.getResources(), R.drawable.custom_marker);
mapboxMap.addImage(MARKER_IMAGE, icon);
需要注意的是,在 v7.0.0 中,您可以选择使用 Annotation Plugin,它提供了一种更直观、面向对象的方式来设置您的 icon/annotation 层,这是我的推荐方法:
您发布的代码片段是 Style -> Source -> Layer
流程的一部分,用于 Mapbox SDK 中的运行时样式设置。出于您的目的,特别是如果您使用相同的图标向地图添加多个标记,您应该通过 SymbolLayer
添加标记。有一个 SymbolLayer
语法如何工作的工作示例 here (it also includes some code for adding interactivity to your markers). You can also get some quick boilerplate code over at Mapbox's marker playground。
回答您的主要问题:SDK 不包含任何将外部 SVG 或 PNG 直接加载为 SymbolLayer 的 iconImage 的便捷方法,因此您需要使用像 Glide or Picasso 这样的库,用于检索图像并将其转换为位图,然后再将其传递给 mapboxMap.addImage()
。