使用数组列表值在Google地图中添加标记,但它只从数组列表中获取最后一个值,请帮助。这是我在下面给出的循环。
for(int k=0;k<jsonarray2.length();k++)
{
jsonobject2 =jsonarray2.getJSONObject(k);
HashMap<String, String> map1 = new HashMap<String, String>();
map1.put("Lat",jsonobject2.getString("Lat"));
Log.d("Hbbbbbbbbbbbbbbb", "" + jsonobject2.getString("Lat"));
map1.put("Long",jsonobject2.getString("Long"));
map1.put("StopName", jsonobject2.getString("StopName"));
Log.d("Hbbbbbbbbbbbbbbb", "" + jsonobject2.getString("Long"));
// map1.put("LiveLongitude",jsonobject1.getString("LiveLongitude"));
// Log.d("Hbbbbbbbbbbbbbbb", "" + jsonobject1.getString("LiveLongitude"));
arraylist12.add(map1);
Log.e("arraylist12", ""+arraylist12);
for (int m = 0; m < arraylist12.size(); m++) {
final LatLng position = new LatLng(Double .parseDouble(arraylist12.get(m).get("Lat")),Double.parseDouble(arraylist12.get(m).get("Long")));
Log.e("position", ""+position);
String stopname = arraylist12.get(m).get("StopName");
if(mark!=null){
mark.remove();
}
final MarkerOptions options = new MarkerOptions().position(position);
//mMap.addMarker(options);
mark=mMap.addMarker(new MarkerOptions().position(position).icon(BitmapDescriptorFactory .fromResource(R.drawable.bustour)).title(stopname));
}
答案 0 :(得分:0)
我认为这么多代码可以通过循环添加多个标记。
for (int m = 0; m < arraylist12.size(); m++) {
final LatLng position = new LatLng(Double .parseDouble(arraylist12.get(m).get("Lat")),Double.parseDouble(arraylist12.get(m).get("Long")));
String stopname = arraylist12.get(m).get("StopName");
mark=mMap.addMarker(new MarkerOptions().position(position).icon(BitmapDescriptorFactory .fromResource(R.drawable.bustour)).title(stopname));
}
如果你将使用if(mark!=null){mark.remove();}
,那么它会在添加新标记之前删除最后一个标记。所以最后你只能看到最后一个标记..
修改强>
您想在添加新集之前删除标记集,然后在添加新标记集之前清除地图。
类似:: mMap.clear();
然后添加新集..