在Android中,可以使用Google Maps的API来计算两个位置之间的距离。下面是一个示例代码:
implementation 'com.google.android.gms:play-services-maps:17.0.0'
请确保将YOUR_API_KEY替换为你自己的Google Maps API密钥。
import android.os.Bundle;
import android.widget.Toast;
import androidx.annotation.NonNull;
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);
}
@Override
public void onMapReady(@NonNull GoogleMap map) {
googleMap = map;
LatLng location1 = new LatLng(40.712776, -74.005974); // 第一个位置的经纬度
LatLng location2 = new LatLng(34.052235, -118.243683); // 第二个位置的经纬度
googleMap.addMarker(new MarkerOptions().position(location1).title("Location 1"));
googleMap.addMarker(new MarkerOptions().position(location2).title("Location 2"));
float distance = calculateDistance(location1, location2);
Toast.makeText(this, "Distance: " + distance + " meters", Toast.LENGTH_SHORT).show();
googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(location1, 10));
}
private float calculateDistance(LatLng location1, LatLng location2) {
float[] results = new float[1];
Location.distanceBetween(location1.latitude, location1.longitude,
location2.latitude, location2.longitude, results);
return results[0];
}
@Override
public void onResume() {
super.onResume();
mapView.onResume();
}
@Override
public void onPause() {
super.onPause();
mapView.onPause();
}
@Override
public void onDestroy() {
super.onDestroy();
mapView.onDestroy();
}
@Override
public void onLowMemory() {
super.onLowMemory();
mapView.onLowMemory();
}
}
在上面的代码中,我们首先在onMapReady方法中设置了两个位置的经纬度,并在地图上添加了两个标记。然后,我们使用calculateDistance方法计算两个位置之间的距离,并显示一个Toast消息来展示这个距离。最后,我们使用moveCamera方法将地图的焦点设置在第一个位置上。
请确保在AndroidManifest.xml文件中添加以下权限:
这样,你就可以在Android应用程序中使用Google Maps API计算两个位置之间的距离了。记得替换代码中的YOUR_API_KEY为你自己的API密钥。