私はアンドロイドの学習を始めたばかりです.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() 関数を使用して追加する必要がある新しいマーカーを追加する必要がありました。