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

时间:2016-07-20 06:09:22

标签: android mapbox mapbox-gl

在Android MapBox GL中构建自定义叠加层,专门用半径(彩色)圈出。它允许使用搜索条动态地改变半径。

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

  1. 我的CircleOverlay在地图中显示
  2. 后,地图触控事件无响应
  3. 一旦我放大,缩小,标记就不会停留在其坐标中。
  4. 更新标记不起作用,所以我必须删除然后再添加标记。
  5. 颜色与我在标记中设置的颜色不符。
  6. 我将限制我在代码上的发布,因为这个回购是我的,并且让问题可以理解。

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

    1. CircleMarkerView.java - 自定义标记视图
    2. [CircleMarkerViewOptions.java](https://github.com/spurdow/SimpleCircleView/blob/master/app/src/main/java/com/spurdow/circleviewtest/CircleMarkerViewOptions.java) - 这将与CircleMarkerView一起使用
    3. SimpleCircleView.java - 这是我动态圈子更改半径等的自定义视图。
    4. MainActivityMapBox - 这就是全部放在哪里
    5. 这是回购中代码的一个例子。

      enter image description here

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

1 个答案:

答案 0 :(得分:1)

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