我有一个包含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,但最终没有向我显示任何内容(现在我至少得到了标题和位置)。
我知道如何将位置保存到我的后端,但我不确定如何获取点击标记的位置。
答案 0 :(得分:0)
只需为地图对象设置onMarkerClickListener,回调就会返回Marker对象。 标记有一个名为Position的属性,它具有您需要的LatLng值。此外,您还必须添加一个infoWindow,使用Marker对象必须显示的名称和其他详细信息。
@Override
public boolean onMarkerClick(Marker marker) {
LatLng markerLocation=marker.getPosition();
return false;
}