除了标题和摘要外,如何在标记中包含 ID

How to include ID in marker in addition to title and snippet

在地图android工作室添加标记时,我只能输入标题和摘要。 如何添加其他参数如id? 我稍后可以在单击标记时得到它。

private void addMarker(LatLng latlng, final String title, final String deskripsi, final String id) {
   markerOptions.position(latlng);
   markerOptions.title(title);
   markerOptions.snippet(deskripsi);

   gMap.addMarker(markerOptions);

   gMap.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() {
   @Override
       public void onInfoWindowClick(Marker marker) {
           Toast.makeText(getApplicationContext(), marker.getTitle(), Toast.LENGTH_SHORT).show();
       }
   });
}

How to add other parameters such as id?

除了marker id,你还想设置哪些字段?

当我们使用 GoogleMap.addMarker 创建标记时,标记 ID 会自动生成。您可以做的是在创建标记后,使用 HashMap 映射所有标记 ID,并在 getInfoWindow(Marker marker)getInfoContents(Marker marker) 内使用 marker.getId() 继续。

您可以使用#marker.setTag

例如:

Marker marker = mMap.addMarker(markerOptions);
marker.setTag([You can give here]); // marker.setTag(30)

稍后您可以使用 getTag

int id = (int) marker.getTag();

要唯一标识您的标记,请使用:

setTag(Object obj)

要检索,请使用:

getTag()

查看此处发布的答案:

使用一个Hashmap来存储marker和id

   private HashMap<Marker, Integer> markerIdMapping = new HashMap<>();


 private void addMarker(LatLng latlng, final String title, final String deskripsi, final String id) {
        markerOptions.position(latlng);
        markerOptions.title(title);
        markerOptions.snippet(deskripsi);

        Marker marker = gMap.addMarker(markerOptions);
        markerIdMapping.put(marker, id);

        gMap.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() {
            @Override
            public void onInfoWindowClick(Marker marker) {
                Toast.makeText(getApplicationContext(), marker.getTitle(), Toast.LENGTH_SHORT).show();
                String markerId = markerIdMapping.get(marker);
            }
        });
    }