我正在开发一个 Android 应用程序。我需要比较位置并查看它们之间的距离。但是,我有很多。我发现最简单的方法是将它们存储在字符串数组中,然后进行比较。我已经搜索过了,但我还没有找到一种方法将字符串数组中的项目变成一个位置。我试过:
double distance
Location locationA = new Location(“point A”)
locationA.setLatitude(latitude);
locationA.setLongitude(Longitude);
Location locationB = new Location(“point B”);
locationB.setLatitude(Latitude.get(0));
LocationB.setLongitude(latitude.get(0));
distance = locationA.distanceTo(locationB);
但它不起作用。我的代码发布在下面:
NearestStations.java
public class Neareststations extends Activity implements LocationListener {
LocationManager mLocationManager;
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.neareststations);
    // Show the Up button in the action bar.
    getActionBar().setDisplayHomeAsUpEnabled(true);
        mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        Location location = mLocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
        double longitude = location.getLongitude();
        double latitude = location.getLatitude();
        Log.i("MYTAG", String.valueOf(longitude));
        Log.i("MYTAG", String.valueOf(latitude));
        if(location != null && location.getTime() > Calendar.getInstance().getTimeInMillis() - 2 * 60 * 1000) {
            // Do something with the recent location if it is less than two minutes old
            Log.i("MYTAG", String.valueOf(location));
            Log.i("MYTAG", String.valueOf(longitude));
            Log.i("MYTAG", String.valueOf(latitude));
        }
        else {
            mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5, 50, this);
            Log.i("MYTAG", String.valueOf(location));
        }
    }
    public void onLocationChanged(Location location) {
        if (location != null) {
        // Do something withthe current location
            Log.i("MYTAG", String.valueOf(location));
        }
    }
    public void onProviderDisabled(String arg0) {}
    public void onProviderEnabled(String arg0) {}
    public void onStatusChanged(String arg0, int arg1, Bundle arg2) {}
    String[] Stations = getResources().getStringArray(R.array.Stations);
    String[] Longitude = getResources().getStringArray(R.array.Longitude);
    String[] Latitude = getResources().getStringArray(R.array.Latitude);
    Map<String, String> myMap = new HashMap<String, String>();{
    for (int i = 0; i <8; i++) {
        myMap.put(Stations[i], Latitude[i]);
    }
    }
    Map<String, String> myMap1 = new HashMap<String, String>();{
    for (int h = 0; h <8; h++) {
        myMap1.put(Stations[h], Longitude[h]);
    }
    }
我怎样才能做到这一点?我的字符串数组是标准的,并且有诸如
<item>-87.669147</item>
<item>-87.680622</item>
感谢您的帮助。