在Android MapBox GL中使用半径(彩色)专门构建自定义叠加层

Android MapBox GL中使用半径(彩色)专门构建自定义叠加层.它允许使用搜索栏动态更改半径.

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

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

我将限制我在代码上的发布,因为这个回购是我的,并且让问题可以理解.

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

> CircleMarkerView.java – 自定义标记视图
> [CircleMarkerViewOptions.java](https://github.com/spurdow/SimpleCircleView/blob/master/app/src/main/java/com/spurdow/circleviewtest/CircleMarkerViewOptions.java) – 这将与CircleMarkerView一起使用
> SimpleCircleView.java – 这是我的动态圆改变半径的自定义视图等.
> MainActivityMapBox – 这就是全部

这是repo中代码的示例.

在Android MapBox GL中使用半径(彩色)专门构建自定义叠加层

有人知道怎么做这个吗?
要么
还有另一种动态构建叠加层的方法吗?
要么
是否可以动态创建圆形位图,并在搜索栏的进度发生变化时将其转换为图标?

解决方法:

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做的事情?我会跟随那里找到的代码.

上一篇:javascript – Mapbox GL JS vs. Mapbox.js


下一篇:java – 设置标注图像mapbox android