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

时间:2015-02-03 22:48:12

标签: android google-maps

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

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

        @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,但最终没有向我显示任何内容(现在我至少得到了标题和位置)。

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

1 个答案:

答案 0 :(得分:0)

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

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