如何使用 OnMarkerClickListener 获取该标记的位置?

How to use OnMarkerClickListener to get location of that marker?

我有一张包含 3 个选项的地图。搜索功能、附近位置功能以及点击地图设置标记选项。我想将这些位置保存在我的 Parse 后端中,但我唯一能弄清楚如何做的是设置标记选项。

当我进行附近搜索并获得一堆结果时,我希望能够单击其中一个标记(查看标题和位置),然后单击保存按钮以保存到我的后端。这是我拥有的:

        @Override
    protected void onPostExecute(List<HashMap<String,String>> list){

        // Clears all the existing markers
        mGoogleMap.clear();

        for(int i=0;i<list.size();i++){

            // Creating a marker
            markerOptions = new MarkerOptions();

            // Getting a place from the places list
            HashMap<String, String> hmPlace = list.get(i);

            // Getting latitude of the place
            double lat = Double.parseDouble(hmPlace.get("lat"));

            // Getting longitude of the place
            double lng = Double.parseDouble(hmPlace.get("lng"));

            // Getting name
            final String name = hmPlace.get("place_name");

            // Getting vicinity
            final String vicinity = hmPlace.get("vicinity");

            latLng = new LatLng(lat, lng);

            // Setting the position for the marker
            markerOptions.position(latLng);

            // Setting the title for the marker.
            //This will be displayed on taping the marker
            markerOptions.title(name + " : " + vicinity);


            // Placing a marker on the touched position
            mGoogleMap.addMarker(markerOptions);


        }

    }    

我已经尝试添加 setOnMarkerClickListener,但它最终没有显示任何内容(现在我至少得到了标题和位置)。

我知道如何将位置保存到我的后端,但我不确定如何获取点击标记的位置。

只需为您的地图对象设置 onMarkerClickListener,回调 returns 给您 Marker 对象。 Marker 有一个名为 Position 的属性,它具有您需要的 LatLng 值。您还必须添加一个信息窗口,使用标记对象必须显示名称和其他详细信息的详细信息。

@Override
public boolean onMarkerClick(Marker marker) {
    LatLng markerLocation=marker.getPosition();
    return false;
}