如何在android中刷新地图上的标记?

时间:2014-03-07 06:53:54

标签: android google-maps-markers google-maps-android-api-2

我想在地图中刷新markers,我的地图包含当前位置的不同位置。如果服务器端添加任何位置,则在我的地图中添加该标记。

如何在没有加载地图的情况下刷新标记?

我的代码

if(arl.size()!=0){
                for(int j = 0;j<arl.size();j++){


              String lat =arl.get(j).get("lat").toString();
              String lng =arl.get(j).get("lng").toString();
              if ( !lat.trim().equals("") && !lng.trim().equals("") ) {
              double Hlat = Double.parseDouble(lat.trim());
              double Hlong= Double.parseDouble(lng.trim());

              LatLng dabaseLocations =new LatLng(Hlat, Hlong);

              Marker HYD = _googleMap.addMarker(new MarkerOptions()

              .position(dabaseLocations)
              .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE))
              .flat(true));

              // Show current location with database locations

              _googleMap.clear();
                _googleMap.moveCamera(CameraUpdateFactory.newLatLng(myPosition)); 
                Marker m=_googleMap.addMarker(new   
         MarkerOptions().position(myPosition).title("start"));
               // m.setPosition(new LatLng(5,5));

                 }
               }

         }
             else{

                 // Show only Current Location

            _googleMap.moveCamera(CameraUpdateFactory.newLatLng(myPosition)); 
            _googleMap.addMarker(new     
       MarkerOptions().position(myPosition).title("start"));

        }

1 个答案:

答案 0 :(得分:4)

保存要更新的所有标记的实例,然后在位置更新时删除标记

private Marker mCustomerMarker;

if (mCustomerMarker != null) {
            mCustomerMarker.remove();
        }

再次重新绘制

     LatLng mCustomerLatLng = new LatLng(latitude, longitude);
     MarkerOptions options = new MarkerOptions();
     options.position(mCustomerLatLng);
     options.title(getResources().getString(R.string.pickup_marker));
            options.icon(BitmapDescriptorFactory
                    .fromResource(R.drawable.green_pin));

在Google地图中添加标记

mCustomerMarker = googleMap.addMarker(options);