我有 2 个文本框,我在其中提供源地址和目标地址。
1) 来源 = SHAHIBAUG UNDER BRIDGE, Shahibagh, Ahmedabad, Gujarat
2) 目的地 = CG Road, Shreyas Colony, Navrangpura, Ahmedabad, Gujarat
距离 = 4.6(来自谷歌地图) && 2.6656852(使用距离定位方法)
final ProgressDialog dialog = ProgressDialog.show(AutoActivity.this, "Fare", "test");
new Thread(new Runnable() {
@Override
public void run() {
try {
Location source_location = new Location("");
Location destination_location = new Location("");
Geocoder geoCode = new Geocoder(getApplicationContext());
source_location.setLatitude(geoCode.getFromLocationName(source_input.getText().toString(), 1).get(0).getLatitude());
source_location.setLatitude(geoCode.getFromLocationName(source_input.getText().toString(), 1).get(0).getLongitude());
source_location.set(source_location);
destination_location.setLatitude(geoCode.getFromLocationName(destination_input.getText().toString(), 1).get(0).getLatitude());
destination_location.setLatitude(geoCode.getFromLocationName(destination_input.getText().toString(), 1).get(0).getLongitude());
destination_location.set(destination_location);
float distance = source_location.distanceTo(destination_location)/1000;
System.out.println("Distance == " + distance);
kmVal = BigDecimal.valueOf(distance);
calculateFares();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (dialog!=null) {
dialog.dismiss();
}
}
}
}).start();
我不知道为什么我的距离不对。我对我的代码有一个疑问,那就是我使用了 getFromLocationName 方法,并且我传递了 1 个参数以获得一个结果。这有什么区别吗?任何人有任何想法请帮忙。