简体   繁体   English

如何在谷歌 map 中的标记上设置点击监听器?

[英]How to Set click listener on marker in google map?

i have two marker in example where one is for current location and one is for destination i have drawn a Route path between them but now in same example i want to set a click listener on both the marker can you suggest some good example related this..?我在示例中有两个标记,一个用于当前位置,一个用于目的地,我在它们之间绘制了一条路线路径,但现在在同一个示例中,我想在两个标记上设置一个点击监听器,你能推荐一些与此相关的好例子吗? .?

Here is how to do it using Kotlin:下面是如何使用 Kotlin 做到这一点:

private lateinit var mMap: GoogleMap  //declaration inside class

override fun onMapReady(googleMap: GoogleMap) {
    mMap = googleMap
    mMap.setOnMarkerClickListener { marker ->
        if (marker.isInfoWindowShown) {
            marker.hideInfoWindow()
            } else {
            marker.showInfoWindow()
            }
        true
        }
}

Hope this helps some beginner like me.希望这对像我这样的初学者有所帮助。

This is how you would go about adding an onClick listener for markers on a map:这是为地图上的标记添加onClick侦听器的方法:

GoogleMap mMap;
Marker marker = mMap.addMarker(
   new MarkerOptions()
       .position(new LatLng(dLat, dLong))
       .title("Your title")                                       
       .icon(BitmapDescriptorFactory.fromResource(R.drawable.map_pin)));

mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
    @Override
    public boolean onMarkerClick(Marker m) {}
}
  1. Let your class/fragment implement OnMarkerClickListener让你的类/片段实现OnMarkerClickListener
  2. Register marker click callback to your googleMap with googleMap.setOnMarkerClickListener(this);使用googleMap.setOnMarkerClickListener(this);向您的 googleMap 注册标记点击回调googleMap.setOnMarkerClickListener(this); in your setup在您的设置中
  3. Override the onMarkerClick覆盖onMarkerClick

     @Override public boolean onMarkerClick(final Marker marker) { //handle click here }

On newer versions of Google Maps, this is no longer valid, you should use:在较新版本的 Google 地图上,这不再有效,您应该使用:

MarkerManager(mMap).newCollection().apply {
    addMarker(MarkerOptions()
        .position(it)
        .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN)))

        setOnMarkerClickListener {
            //handleClick    
        }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM