私は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>
ご協力ありがとうございました。