除了标题和摘要

时间:2018-01-31 04:44:23

标签: java android google-maps android-studio google-maps-markers

当addMarker在地图android studio中时,我只能输入标题和片段。 如何添加其他参数如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();
       }
   });
}

4 个答案:

答案 0 :(得分:3)

使用一个Hashmap存储标记和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);
            }
        });
    }

答案 1 :(得分:1)

您可以使用#marker.setTag

前:

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

稍后您可以使用getTag

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

答案 2 :(得分:0)

  

如何添加其他参数,例如id?

您希望将哪些其他字段与标记ID分开?

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

答案 3 :(得分:0)

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

setTag(Object obj)

并检索,使用:

getTag()

看到这里发布的答案: How to set tag to Google Map's marker in Android?