【发布时间】:2012-09-03 08:18:52
【问题描述】:
我有 2 个文本框,我在其中提供源地址和目标地址。
1) 来源 = SHAHIBAUG UNDER BRIDGE, Shahibagh, Ahmedabad, Gujarat
2) 目的地 = CG Road, Shreyas Colony, Navrangpura, Ahmedabad, Gujarat
距离 = 4.6(来自 Google 地图) && 2.6656852(使用位置的 distanceTo 方法)
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 个参数以获得一个结果。这有什么区别吗?任何人有任何想法请帮忙。
【问题讨论】:
-
尝试计算与源 lat,lng 和目标 lat,lng 的距离
-
我需要这两个位置的道路距离。是否可以通过 android 中可用的 Geocoder 和 Location API 或必须使用 Google Maps。
标签: android google-maps location google-geocoder