要实现在按钮按下时更改位置/标记,您可以使用以下步骤:
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import androidx.appcompat.app.AppCompatActivity;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapView;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
public class MainActivity extends AppCompatActivity implements OnMapReadyCallback {
private MapView mapView;
private GoogleMap googleMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mapView = findViewById(R.id.mapView);
mapView.onCreate(savedInstanceState);
mapView.getMapAsync(this);
Button btnChangeLocation = findViewById(R.id.btnChangeLocation);
btnChangeLocation.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 更改位置/标记的逻辑
LatLng newLocation = new LatLng(37.7749, -122.4194);
googleMap.clear(); // 清除现有的标记
googleMap.addMarker(new MarkerOptions().position(newLocation).title("New Location"));
googleMap.animateCamera(CameraUpdateFactory.newLatLng(newLocation));
}
});
}
@Override
public void onMapReady(GoogleMap googleMap) {
this.googleMap = googleMap;
}
@Override
protected void onResume() {
super.onResume();
mapView.onResume();
}
@Override
protected void onPause() {
super.onPause();
mapView.onPause();
}
@Override
protected void onDestroy() {
super.onDestroy();
mapView.onDestroy();
}
@Override
public void onLowMemory() {
super.onLowMemory();
mapView.onLowMemory();
}
}
在上述代码中,点击按钮时,我们更改了位置和标记。我们首先定义了一个新的位置(纬度37.7749,经度-122.4194),然后清除地图上的现有标记,添加一个新的标记,并使用animateCamera()方法将地图移动到新位置。
请确保您在项目的build.gradle文件中添加了Google Maps SDK的依赖项:
implementation 'com.google.android.gms:play-services-maps:17.0.1'