# Calculate distance with variable lat and lon values

• 01-06-2013, 03:19 AM
nitapita
Calculate distance with variable lat and lon values
Hi

I have a problem with implementing variables into a function that calculate distance between 2 latitudes, longitudes.
One of them is constant, and the second one being passed from the form.

Here is the code:

PHP Code:

``` \$lon1 = \$_POST['lon1'];         \$lat1 = \$_POST['lat1'];         \$lon2 = '-0.30020239';         \$lat2 = '51.58734910';          function distance(\$lat11, \$lon11, \$lat22, \$lon22) {          \$theta = \$lon11 - \$lon22;          \$dist = sin(deg2rad(\$lat11)) * sin(deg2rad(\$lat22)) +  cos(deg2rad(\$lat11)) * cos(deg2rad(\$lat22)) * cos(deg2rad(\$theta));          \$dist = acos(\$dist);          \$dist = rad2deg(\$dist);          \$miles = \$dist * 60 * 1.1515;                 return \$miles; } echo " \$lon1, \$lat1<br> \$lon2, \$lat2<br>"; //////////  return good calculation echo distance(52.611644, -0.26304, 51.58734910, -0.30020239) . " miles<br>"; ////////// my way - return wrong calculation  echo distance("\$lon1", "\$lat1", 51.58734910, -0.30020239) . " miles<br>";  ```
As long as i have lat, lon values hardcoded is fine, but idea is to have this calculation done from variables.
Both will vary .... tried different configurations ... i'm losing it ...

How should I code it ??

• 01-06-2013, 03:34 AM
NogDog
Looks like you have your latitude and longitude parameters transposed when you call your distance() function. (It's defined as lat, long, lat, long, but you've called it as long, lat, log, lat.)
• 01-06-2013, 03:55 AM
nitapita
wow, how could i not see that .. blind ... works perfect.

Thank you for opening my eyes.

SOLVED

## X vBulletin 4.2.2 Debug Information

• Page Generation 0.09971 seconds
• Memory Usage 2,361KB
• Queries Executed 11 (?)
Template Usage (20):
• (1)bbcode_php_printable
• (1)footer
• (1)gobutton
• (1)navbar_moderation
• (1)navbar_noticebit
• (2)option
• (1)spacer_close
• (1)spacer_open

Phrase Groups Available (3):
• global
• postbit
Included Files (19):
• ./global.php
• ./includes/class_bootstrap.php
• ./includes/init.php
• ./includes/class_core.php
• ./includes/config.php
• ./includes/functions.php
• ./includes/class_friendly_url.php
• ./includes/class_hook.php
• ./includes/class_bootstrap_framework.php
• ./vb/vb.php
• ./vb/phrase.php
• ./includes/functions_calendar.php
• ./includes/class_bbcode_alt.php
• ./includes/class_bbcode.php
• ./includes/functions_bigthree.php
• ./includes/functions_notice.php

Hooks Called (41):
• init_startup
• init_startup_session_setup_start
• database_pre_fetch_array
• database_post_fetch_array
• init_startup_session_setup_complete
• global_bootstrap_init_start
• global_bootstrap_init_complete
• cache_permissions
• fetch_foruminfo
• global_state_check
• global_bootstrap_complete
• global_start
• style_fetch
• global_setup_complete
• bbcode_fetch_tags
• bbcode_create
• bbcode_parse_start
• cache_templates
• cache_templates_process
• template_register_var
• template_render_output
• fetch_template_start
• fetch_template_complete
• parse_templates