在 Android MapBox GL 中构建具有半径(彩色)的自定义叠加层
Building custom overlay specifically circle with radius(colored) in Android MapBox GL
在 Android MapBox GL 中构建具有半径(彩色)的自定义叠加层。它允许使用搜索栏动态更改半径。
我正在尝试构建一些自定义标记并且我使用了 SimpleCircleView 但是我在尝试在 MapBox GL android 中显示它时遇到问题 android,并且它产生了很多错误。
- 一旦我的
CircleOverlay
显示在地图 中,地图触摸事件就没有响应
- 放大、缩小后,标记不会停留在其坐标中。
- 更新标记不起作用,所以我必须删除然后重新添加标记。
- 颜色与我在标记中设置的颜色不匹配。
我会限制我在代码上的发布,因为这个 repo 是我的并且让问题易于理解。
在构建自定义叠加层时,我必须制作这些 类:
- CircleMarkerView.java - 自定义标记视图
- [CircleMarkerViewOptions.java] (https://github.com/spurdow/SimpleCircleView/blob/master/app/src/main/java/com/spurdow/circleviewtest/CircleMarkerViewOptions.java) - 这将与 CircleMarkerView
一起使用
- SimpleCircleView.java - 这是我的动态圆改变其半径等的自定义视图
- 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 中执行的操作?我会按照那里找到的代码进行操作。
在 Android MapBox GL 中构建具有半径(彩色)的自定义叠加层。它允许使用搜索栏动态更改半径。
我正在尝试构建一些自定义标记并且我使用了 SimpleCircleView 但是我在尝试在 MapBox GL android 中显示它时遇到问题 android,并且它产生了很多错误。
- 一旦我的
CircleOverlay
显示在地图 中,地图触摸事件就没有响应
- 放大、缩小后,标记不会停留在其坐标中。
- 更新标记不起作用,所以我必须删除然后重新添加标记。
- 颜色与我在标记中设置的颜色不匹配。
我会限制我在代码上的发布,因为这个 repo 是我的并且让问题易于理解。
在构建自定义叠加层时,我必须制作这些 类:
- CircleMarkerView.java - 自定义标记视图
- [CircleMarkerViewOptions.java] (https://github.com/spurdow/SimpleCircleView/blob/master/app/src/main/java/com/spurdow/circleviewtest/CircleMarkerViewOptions.java) - 这将与 CircleMarkerView 一起使用
- SimpleCircleView.java - 这是我的动态圆改变其半径等的自定义视图
- 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 中执行的操作?我会按照那里找到的代码进行操作。