当前位置: 首页 > 知识库问答 >
问题:

如何知道在谷歌地图v2上点击了哪个标记?

阳凌
2023-03-14

问题是:这种方法是信息窗口内容的一般实现,但每个标记都要显示自己的信息。因此,据我所知,我必须在getInfoContents(Marker Marker)上检测哪些标记被单击,以便从我的数据结构中加载必要的信息以在信息窗口上显示。问题是:我如何识别点击的标记'Marker'代表什么实体?我的意思是,只有getInfoContents上的对象标记被触发以显示信息窗口,我如何检测哪个是要显示的正确信息?我想通过使用marker.gettitle()来比较字符串标题,但这迫使我在信息窗口上显示一个标题,这是我不想要的。还有一个marker.getid(),但是这样的ID是由API生成的,我无法控制它

有什么想法吗?

共有1个答案

东门清夷
2023-03-14

答复:

问题是:我如何识别点击的标记'Marker'代表什么实体?[...]还有一个marker.getid(),但是这样的ID是由API生成的,我无法控制它

你可以控制它。该标记由addMarker()返回,因此您可以获取它的ID并存储它。代码如下:

Map <String, Integer> markers = new HashMap<String, Integer>();
MarkerOptions mo = new MarkerOptions()
.icon(BitmapDescriptorFactory.fromResource(R.drawable.my_marker))
.position(new LatLng(mLat, mLon))
.flat(true) 
.snippet("Click here for details")
.rotation(0)
.title(title);
MyClass myObject = new MyClass(lat, lon); // The class that you are rendering on the map with Markers, for example "Monument"
Marker mkr = map.addMarker(mo);
markers.put(mkr.getId(), myObject.getId()); 
map.setOnInfoWindowClickListener(new OnInfoWindowClickListener() {
    public void onInfoWindowClick(Marker marker) {
        int id = markers.get(marker.getId());
        // Now id contains which Monument (or your preferred class) was clicked                         
    }
});
 类似资料:
  • 如何使Android Google Maps API v2中的标记变得可点击,以便它们要么打开一个带有选项的菜单,要么开始一个新的活动?我相信我在我的应用程序中的标记目前在一个“newb”方法。我没有为它们分配一个名称或方法,以便能够将其与所需代码的其余部分链接在一起。 如果你回答这个问题,请包括一个标记被引入一个独特的名称,然后被设置为可点击打开一个新活动的示例代码。

  • 更新:我通过添加previousMarker对象解决了性能问题。因此,只有先前点击的标记将被删除,并替换为默认图标。然而,当我单击标记时,信息窗口仍然没有显示。 我有一个地图视图,并在上面设置了一些标记。我想要的是当我点击一个标记时,它会改变它的图标为一个不同的图标,当我点击另一个标记时,前一个标记的图标应该改变为它原来的图标。 populateAllMarkersOnMap()目前可以是如下所示

  • 我正在尝试用我自己的Google maps V2图标替换蓝点(在地图上显示当前位置)。我在下面试过了,没有成功。 Android Maps API v2更改MyLocation图标 映射V2 myLocation蓝点回调 在Google Map API v2中禁用MyLocation中的中心按钮 以下不起作用

  • 我需要一些帮助来绘制我正在绘制的地图。地图并不特别复杂,因为我是一个初学者,我有一堆带有信息窗口的标记(完成后还会有更多标记),单击标记或选择页面HTML端下拉菜单的相应项时可以打开这些标记。 当信息窗口打开时(在HTML菜单中单击或选择),我想做但自己找不到的是在地图上自动居中标记。我假设有某种函数可以分配给click或infowindow打开事件,但无法确定是哪种函数以及如何实现它。 我的代码

  • 问题内容: 我想在Google Maps android上显示带有多个标记的位置,问题是当我运行我的应用程序时,它只显示一个位置/标记,这是我的代码: 我不知道我的错在哪里,希望有人能帮助我解决我的问题,非常感谢你 问题答案: 用这个: 或者,您也可以使用以下命令: 其中 纬度 和 经度 是存储在数组列表中的具有不同名称的字符串.....

  • 我有一张地图,上面有很多自定义的大标记。现在,我希望允许用户在地图上创建路径(显示为折线,稍后保存为地理坐标对列表)。 如果用户单击地图,我可以使用地图的setOnMapClickedListener方法收集这些位置。但是如果用户点击一个标记(setOnMarkerClickedListener),我只能检索标记的位置(通常是标记的ancor的位置)。