我使用以下方法在地图上添加了标记,并保留了标记记录
public static void showallLocations()
{
ArrayList<LinkedHashMap<String, String>> listshow=latLngStoragepreference.getLatlng();
markerlist=new ArrayList<Marker>();// to keep the marker record so that later we can delete
if(listshow.size()>0)
{
for(int i=0;i<listshow.size();i++)
{
LinkedHashMap<String, String> Linkedhashmap=listshow.get(i);
Set mapSet = (Set) Linkedhashmap.entrySet();
//Create iterator on Set
Iterator mapIterator = mapSet.iterator();
Map.Entry mapEntry = (Map.Entry) mapIterator.next();
// getKey Method of HashMap access a key of map
String keyValue = (String) mapEntry.getKey();
//getValue method returns corresponding key's value
String value = (String) mapEntry.getValue();
String[] parts=value.split("#");
String Latitude=parts[0];
String Longitude=parts[1];
Double Latitudeconverted=Double.parseDouble(Latitude);
Double Longitudeconverted=Double.parseDouble(Longitude);
System.out.println(Latitudeconverted+""+Longitudeconverted);
//show on map
LatLng latLngs=new LatLng(Latitudeconverted, Longitudeconverted);
Marker marker=map.addMarker(new MarkerOptions()
.position(
latLngs)
.title(keyValue)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_navigate_to)));
markerlist.add(marker);// keeping the record of marker object
}
}
}
在自定义基础适配器中,我尝试删除标记,但是marker.remove()
不管用
holder.btnDeletelocation.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Marker marker= MainActivity.markerlist.get(position);
Log.d("MARKERlist before Remove", MainActivity.markerlist.toString());
Log.d("MARKER Title",marker.getTitle());
marker.remove();
marker.setVisible(false);
Log.d("MARKERlist after Remove", MainActivity.markerlist.toString());
notifyDataSetChanged();
}
});
如果有人经历过同样的事情,请帮忙。提前致谢
我用谷歌搜索了很多,发现没有简单的方法可以从地图上删除标记,
每当您将标记添加到地图时,不要忘记保留其记录,就像将其添加到 Map 或 ArrayList 一样。
your_google_map_obj.addMarker(new MarkerOptions()) //this adds Marker on Google Map, you should know it always returns Marker object so that you can use it later especially for removal.
so Marker marker=your_google_map_obj.addMarker(new MarkerOptions())
将此标记对象添加到列表或地图中markerArraylist.add(marker);
然后您可以轻松地从列表中提取标记Marker marker=markerArraylist.get(index);
然后打电话marker.remove();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)