2013-05-13 4 views
0

거리 계산을위한 forma가있는지도 페이지가 있지만 이것은 데이터베이스의 모든 도시를 처리하는 드롭리스트 2 개를 포함하고있어서 사용자는 첫 번째 드롭에서 첫 번째 포인트를 선택할 수 있습니다 목록 및 두 번째 드롭 목록에서 두 번째 지점을 누른 다음 각 도시에 대한 데이터베이스에 저장된 경도와 위도를 사용하여 거리를 계산합니다.mysql과 PHP를 사용하여 2 포인트 사이의 거리를 계산하십시오

village table: 

- id 
- village_name 
- lattitude 
- longiude 
- district_id 

i have this query untill now but i do not know if it is right 

<?php 
    if(isset($_POST['calculate'])) 
    { 
     $sql = mysql_query("SELECT (3959 * acos(cos(radians(37)) * cos(radians(lattitude)) * cos(radians(longitude) - radians(-122)) + sin(radians(37)) * sin(radians(lat))))FROM village")or die(mysql_error()); 
    } 

?> 

문제는 내가 내가 하버 사인 공식에 대해 읽어 않았다

데이터베이스에 저장된 위도와 경도를 사용하여 두 점 사이의 거리를 계산하는 방법을 모르지만 내가 사용하는 방법을 모르겠입니다 여기에

나는 누군가 나를 위해 그것을하고 싶지 않고 나를 설명하고 나를 도왔다. 누구나 나를 도와 줄 수 있니?

+0

(? 스마트 까마귀) – Drew

+0

http://stackoverflow.com/questions/1006654/fastest-way-to-find-distance-between-two- 위도 경도 : – Drew

+0

가능한 중복 : http://stackoverflow.com/questions/574691/mysql-great-circle-distance-haversine-formula –

답변

1

내 의견으로는 PHP를 사용하여 계산해야합니다. 모든

먼저 위도 및 데이터베이스 경도 페치

$LonS - Start lon 
$LonE - End lon 
$LatS - Start lat 
$LatE - End lat 

http://en.wikipedia.org/wiki/Haversine_formula

도트 (.)를 승산 수단 대원 수식 PHP에서, (I은 플로트 형식으로 추측) '*'. 그래서 PHP의 마지막 코드 : 까마귀 파리로

$R = 6371; //km 
$A = pow(sin(($LatE - $LatS)/2), 2) + cos($LatS) * cos($LatE) * pow(sin(($LonE - $LonS)/2) , 2); 
$C = 2 * atan2(sqrt($A), sqrt(1 - $A)); 
$D = $R * $C; 
관련 문제