I have 2 textbox in which i am providing source and destination address.
1) Source = SHAHIBAUG UNDER BRIDGE, Shahibagh, Ahmedabad, Gujarat
2) Destination = CG Road, Shreyas Colony, Navrangpura, Ahmedabad, Gujarat
Distance = 4.6 (From Google Map) && 2.6656852 (Using distanceTo method of Location)
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();
I don't know why I am getting wrong distance. I have one doubt in my code that is I have used getFromLocationName method and in that I am passing 1 argument for getting only one result. Does that makes any difference? Anyone has any idea please kindly help.