0

我刚开始学习 android。我正在开发一个使用 google map 的小型应用程序,所以我使用了 google maps api v2。

现在,当我运行我的应用程序时,我能够获取地图,并且我正在找到我的位置并在该点添加一个标记,但是当我尝试删除该标记时,我无法删除它。我正在使用 clear() 方法. 这是我的代码。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    if(isGooglePlayAvailable())
    {

        criteria=new Criteria();

        setContentView(R.layout.mapdemo);

        getGoogleMap();

        getUserLocation();

        //Toast.makeText(this, "Latitude:"+lat+" Longitude:"+lang, Toast.LENGTH_LONG).show();

        getAddress(lat,lang);

        drawMarker(lat,lang);

    }

private void getUserLocation(){

    location_manager=(LocationManager) getSystemService(LOCATION_SERVICE);
    if(location_manager!=null){
        provider=location_manager.getBestProvider(criteria, true);
        location=location_manager.getLastKnownLocation(provider);
        location_manager.requestLocationUpdates(provider, Map.MIN_TIME_BW_UPDATES, Map.MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
        lat=location.getLatitude();
        lang=location.getLongitude();
    }
}

@Override
public void onLocationChanged(Location location) {

    drawMarker(lat, lang);

}

private void drawMarker(double lattitude,double longitude){

    google_map.clear();

    google_map.setMyLocationEnabled(true);

    LatLng latlng=new LatLng(lattitude, longitude);

    google_map.moveCamera(CameraUpdateFactory.newLatLng(latlng));
    google_map.animateCamera(CameraUpdateFactory.zoomTo(15));

    LatLng currentPosition = new LatLng(lattitude,longitude);
    google_map.addMarker(new MarkerOptions().position(currentPosition).snippet("Address:" + addresses.get(0).getAddressLine(0) + "City:"+ addresses.get(0).getAddressLine(1)+"Country:"+addresses.get(0).getAddressLine(2)).icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED)).title("ME"));
}

我还参考了以下链接Clear markers from Google Map in Android

在这里我没有发布完整的代码,因为一切正常我想做的是我想删除当前标记并添加必须使用 drawmarker() 函数添加的新标记。

4

0 回答 0