【问题标题】:How to identify Marker if I use Marker clustering?如果我使用标记聚类,如何识别标记?
【发布时间】:2018-05-16 08:00:14
【问题描述】:

如果我使用标记聚类,如何识别标记,而我拥有的只是 MarkerOption 对象并且它没有标签或 ID?
在聚类之前,我可以将 tag 或 id 设置为标记,因为我手动创建了它们。我可以通过这个 id 在 DB 中找到一个对象,并在我拖动标记时更改它(onMarkerDragEnd(Marker marker))。现在,当我使用集群时,我没有 id 或 tag。
而且我无法通过标记位置在 DB 中找到对象,因为 onMarkerDragStart 方法给了我错误的位置(因为当我们长时间单击它以帮助我们在手指后面看到它时标记会跳转)。
对不起我的英语。

【问题讨论】:

  • 标记聚类是指在同一张地图上有多个标记吗?如果是,您想识别每个标记及其方法吗?
  • 是的,我有很多标记。当我拖动标记时,我想更新数据库中的对象,该对象存储有关标记位置的信息。

标签: android google-maps-markers google-maps-android-api-2


【解决方案1】:

您可以将所有标记及其 ID 存储在哈希图中,并通过调用 markerList.get(marker) 在任何标记方法上获取它们的 ID。

   private HashMap<Marker, String> markerList = new HashMap<>();
    private GoogleMap mMap; //also instantiate your map 

    private void addMarker(String id, LatLng pos){
        MarkerOptions options = new MarkerOptions();
        options.position(pos);
        options.title("title");
        Marker mapMarker = mMap.addMarker(options);
        markerList.put(mapMarker, id);

    }

【讨论】:

  • 在这种情况下,我可以marker.setId(id)marker.setTag(id)。你不明白。您是否使用了标记聚类?问题是我没有通过mMap.add(marker) 添加标记。我用CluserManeger.add(item)
猜你喜欢
  • 1970-01-01
  • 2018-08-19
  • 2022-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-30
  • 1970-01-01
相关资源
最近更新 更多