Link to home
Start Free TrialLog in
Avatar of Adnan
AdnanFlag for Norway

asked on

How to calculate distance in (km) is lower then given distance in string (km)

HI

I want to calculate distance is within the range of 1.0 km.
Iam using google distanematrix to get the distance in km to the place, and its working fine.

function returns a string, witch looks like f.eks:
- "0.9 km"
- "6.9 km"

I want to calculate so that distance is within the range of 1.0 km and not higher, but lower is ok...
But some times i also get distance in meter when iam close to the place, f.eks:
"14 m"
"20 m"

So how can i calculate correct distance if i get distance in double string value or as an int value?

Here is my if statement where iam checking the returned distance in km is lower then "1.0 km"
var dist = str.split(" "); //Split so i can only get the value and not the string "km"
if (Math.round(dist[0] * 100) <= Math.round('1.0' * 100)) {
                         alert('you are in the range')
                        }
else{
alert('you are to far away')
}

Open in new window





iam not getting the correct result with the code above, any suggestion for how i can calculate the correct way will be really appriciated...

Thanks in advance
Avatar of Leonidas Dosas
Leonidas Dosas
Flag of Greece image

Comments inside the js code:
//I use the parseFloat function to get a float number
var dist = parseFloat(str.split(" ")); //Split so i can only get the value and not the string "km"
if(dist<=1.0){
  alert('you are in the range');
}else{
  alert('you are to far away');
}

Open in new window

Avatar of Adnan

ASKER

Thanks for the response...

but what about if i get distance in meters f.eks ("20 m") and not km (4.4) ?
ASKER CERTIFIED SOLUTION
Avatar of Leonidas Dosas
Leonidas Dosas
Flag of Greece image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
<script>
var dist = "43 m";

var result = dist.match(/^(\d+[\.]?[\d+]?)\s+(.*)$/);
if (result) {
  // convert to meters
  var newdist = result[1] * (result[2] == 'km' ? 1000 : 1);
  console.log(newdist);
}
</script>

Open in new window