当我从数组列表中添加一组标记时,它只显示数组列表中的最后一个值?

时间:2015-10-08 06:13:52

标签: java android arrays google-maps google-maps-markers

使用数组列表值在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));

}

1 个答案:

答案 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();然后添加新集..