Avatar of Adnan
Adnan
Flag 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
AngularJavaScriptjQuery

Avatar of undefined
Last Comment
Julian Hansen

8/22/2022 - Mon
Leonidas Dosas

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

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
Leonidas Dosas

THIS SOLUTION ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
GET A PERSONALIZED SOLUTION
Ask your own question & get feedback from real experts
Find out why thousands trust the EE community with their toughest problems.
Julian Hansen

<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

Experts Exchange has (a) saved my job multiple times, (b) saved me hours, days, and even weeks of work, and often (c) makes me look like a superhero! This place is MAGIC!
Walt Forbes