安卓谷歌地图 - 当标记被点击时获取地图点击位置

4
我有一张地图上有许多大型自定义标记。现在我想允许用户在地图上创建路径(显示为折线并稍后保存为地理坐标对列表)。
如果用户单击地图,我可以使用地图的setOnMapClickedListener方法收集这些位置。但是,如果用户单击标记(setOnMarkerClickedListener),我只能检索标记的位置(通常是标记锚点的位置)。
是否可能在实际点击标记时获取点击的地图位置?
我正在使用SupportMapFragment。

我需要自己计算正确的标记,因为在 onMarkerClick 事件中,当有另一个标记靠近被点击的标记时,它会给我一个错误的标记。 - Damn Vegetables
3个回答

2

我觉得这可能晚了一点,但希望这能对你有所帮助。

mGoogleMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
            @Override
            public void onMapClick(LatLng latLng) {

           Toast.makeText(
                                YourActivity.this,
                                "Lat : " + latLng.latitude + " , "
                                        + "Long : " + latLng.longitude,
                                Toast.LENGTH_LONG).show();

            }
        });

        mGoogleMap.setOnInfoWindowClickListener(RegActivity.this);


    }

1
尝试像下面这样。
        mMap.setOnMarkerClickListener(new OnMarkerClickListener() {
            @Override
            public boolean onMarkerClick(Marker marker) {
                LatLng position = marker.getPosition();

                Toast.makeText(
                                MainActivity.this,
                                "Lat " + position.latitude + " "
                                        + "Long " + position.longitude,
                                Toast.LENGTH_LONG).show();
                return true;
            }
        });

1
你没有正确阅读问题。我不需要标记的位置。我需要点击的LatLng位置(即使按下了标记)。 - Oliver Metz

0
            mMap.setOnMapClickListener {
            val  position=p0.cameraPosition.target
            Toast.makeText(
                                MainActivity.this,
                                "Lat " + position.latitude + " "
                                        + "Long " + position.longitude,
                                Toast.LENGTH_LONG).show();"
    return True
}

你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心中找到有关如何编写良好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接