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

Adnan
Adnan used Ask the Experts™
on
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
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Distinguished Expert 2017

Commented:
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

Author

Commented:
Thanks for the response...

but what about if i get distance in meters f.eks ("20 m") and not km (4.4) ?
Distinguished Expert 2017
Commented:
var index=str.substr(-2);

switch (index){
  case " m":
   var dist = parseInt(str.split(" "));    
   dist=parseFloat(dist/1000);
   if(dist<=1.0){
   alert('you are in the range');
     break;
   }else{
   alert('you are to far away');
     break;
   }
  case "km":
  //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');
    break;
  }else{
  alert('you are to far away');
    break;
}
}
  

Open in new window

Most Valuable Expert 2017
Distinguished Expert 2018

Commented:
<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

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial