You are not logged in. ## Javascript function to calculate distance between map spots beek

Beginner

•  Monday, October 11th 2010, 11:24pm

### Javascript function to calculate distance between map spots

Hi,

I'm trying to get this to work with: ### Source code

```1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
```
```<script type="text/javascript">
// <![CDATA[
function krpano()
{
return document.getElementById("krpanoSWFObject");
}
function test()
{
krpano().call("trace(test);");
}
function distance(lat1, lon1, lat2, lon2, unit) {
var radlat1 = Math.PI * lat1/180
var radlat2 = Math.PI * lat2/180
var radlon1 = Math.PI * lon1/180
var radlon2 = Math.PI * lon2/180
var theta = lon1-lon2
var radtheta = Math.PI * theta/180
dist = Math.acos(dist)
dist = dist * 180/Math.PI
dist = dist * 60 * 1.1515
if (unit=="K") { dist = dist * 1.609344 }
if (unit=="N") { dist = dist * 0.8684 }
return dist;
krpano().set("dist", dist);
}
// ]]>
</script>```

And: ### Source code

```1
2
```
```js(distance(%2,%3,%4,%5,K));
trace(get(dist));```

But it's returning a null value in the trace. Anyone any ideas? michel

Professional Posts: 1,153

Location: ANDORRA

Occupation: TV Tuesday, October 12th 2010, 12:16am

Hi beek,

I am not an expert, but ...
I think the return statement has nothing to do here (should be useful to return a value to a javascript function)... Also, if I am not on mistake the return ends the function so the following line code is not executed...
So, try this: ### Source code

```1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
```
```function distance(lat1, lon1, lat2, lon2, unit) {
var radlat1 = Math.PI * lat1/180
var radlat2 = Math.PI * lat2/180
var radlon1 = Math.PI * lon1/180
var radlon2 = Math.PI * lon2/180
var theta = lon1-lon2
var radtheta = Math.PI * theta/180
dist = Math.acos(dist)
dist = dist * 180/Math.PI
dist = dist * 60 * 1.1515
if (unit=="K") { dist = dist * 1.609344 }
if (unit=="N") { dist = dist * 0.8684 }
krpano().set("dist", dist);
} ```

Hope this help...

I am curios to see the usage of your code. What is it for? ...

SAlut. beek

Beginner

•  Tuesday, October 12th 2010, 2:17am

Cheers Michel,

I solved it with:

return krpano().set("dist",dist);

It's to work out distances between mapspot lat and longs - so I can tell the user how far away things are!

p.s. it's not true - you are an expert! olihar

Trainee Posts: 139

Location: Iceland

Occupation: Interaction Designer Tuesday, October 12th 2010, 8:41am

beek

Are you going to post an example of this in use for others to see?