0

私はアンドロイドの学習を始めたばかりです.Googleマップを使用している小さなアプリケーションを1つ開発しているので、GoogleマップAPI v2を使用しました.

アプリケーションを実行しているときにマップを取得でき、自分の場所を見つけてその時点でマーカーを 1 つ追加していますが、そのマーカーを削除しようとすると削除できません。 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"));
}

次のリンクも参照しました AndroidのGoogleマップからマーカーをクリアする

すべてが正常に機能するため、ここでは完全なコードを投稿しませんでした。現在のマーカーを削除し、drawmarker() 関数を使用して追加する必要がある新しいマーカーを追加する必要がありました。

4

0 に答える 0