在 Android MapBox GL 中构建具有半径(彩色)的自定义叠加层

Building custom overlay specifically circle with radius(colored) in Android MapBox GL

在 Android MapBox GL 中构建具有半径(彩色)的自定义叠加层。它允许使用搜索栏动态更改半径。

我正在尝试构建一些自定义标记并且我使用了 SimpleCircleView 但是我在尝试在 MapBox GL android 中显示它时遇到问题 android,并且它产生了很多错误。

  1. 一旦我的CircleOverlay显示在地图
  2. 中,地图触摸事件就没有响应
  3. 放大、缩小后,标记不会停留在其坐标中。
  4. 更新标记不起作用,所以我必须删除然后重新添加标记。
  5. 颜色与我在标记中设置的颜色不匹配。

我会限制我在代码上的发布,因为这个 repo 是我的并且让问题易于理解。

在构建自定义叠加层时,我必须制作这些 类:

  1. CircleMarkerView.java - 自定义标记视图
  2. [CircleMarkerViewOptions.java] (https://github.com/spurdow/SimpleCircleView/blob/master/app/src/main/java/com/spurdow/circleviewtest/CircleMarkerViewOptions.java) - 这将与 CircleMarkerView
  3. 一起使用
  4. SimpleCircleView.java - 这是我的动态圆改变其半径等的自定义视图
  5. MainActivityMapBox - 这就是放置所有内容的地方

这是存储库中的代码示例。

有人知道如何简单地做到这一点吗? 要么 还有另一种动态构建叠加层的方法吗? 要么 是否可以动态创建一个圆形位图并在seekbar的进度发生变化时将其转换为图标?

1.一旦我的 CircleOverlay 显示在地图中,地图触摸事件就没有响应
这是我们计划在下一个版本中解决的问题,您可以关注此 here 的进展。

2。一旦我放大,缩小,标记就不会停留在它的坐标中。
这可能是因为您没有使用 .setAnchor() 正确锚定标记图标,或者您的图标周围有填充。对于一个圆圈,您需要将锚点居中(使用 0.5f)。在导致 anchoring not to work correctly 的前一个稳定版本之前引入了一个错误。如果这是一个问题,请使用 4.2.0-SNAPSHOT.

3。更新标记不起作用,所以我必须删除然后再次添加标记。 你能详细说明一下这个问题吗?您可能正在使用

Marker marker = mapboxMap.addMarker(new MarkerViewOptions()...

你应该在什么时候使用:

MarkerView marker = mapboxMap.addMarker(new MarkerViewOptions()...

这将为您提供更多更新标记的选项。

4.颜色与我在标记中设置的颜色不匹配。
你能澄清一下你的意思吗?

听起来您想要执行此示例在 testapp 中执行的操作?我会按照那里找到的代码进行操作。