다음 코드를 사용했지만 소스에서 목적지까지의 거리를 제공합니다. 그러나 도로 거리가 필요합니다. 제발 도와주세요.소스 위도와 경도에서 목적지까지의 도로 거리를 계산하십시오.
이 거리지만이 거리는 거리와 거리가 필요합니다.
$center_lat =$_POST['lat'];
//19.159519;//
$center_lng =$_POST['lng'];//72.995782;//
$radius = '3963.0';
$range=$_POST['range'];
//echo $center_lng;
// Set the active mySQL database
$db_selected = mysql_select_db("mapdb", $connection);
// Search the rows in the markers table
$query = sprintf("SELECT name,lat, lng, (3959 * acos(cos(radians('%s')) * cos(radians(lat)) * cos(radians(lng) - radians('%s')) + sin(radians('%s')) * sin(radians(lat)))) AS distance FROM hospitals HAVING distance < '%s' ORDER BY distance LIMIT 0 , 20",
mysql_real_escape_string($center_lat),
mysql_real_escape_string($center_lng),
mysql_real_escape_string($center_lat),
mysql_real_escape_string($radius));
$result = mysql_query($query);
if (!$result) {
die("Invalid query: " . mysql_error());
}
else
{
echo "Done";
}
// header('Content-type: application/json');
//$output = array();
$i=0;
while($row = mysql_fetch_assoc($result)) {
if($range > 0)
{
$theta = $center_lng - $row['lng'];
$distance = (sin(deg2rad($center_lat)) * sin(deg2rad($row['lat']))) + (cos(deg2rad($center_lat)) * cos(deg2rad($row['lat'])) * cos(deg2rad($theta)));
$distance = acos($distance);
$distance = rad2deg($distance);
$distance = $distance * 60 * 1.1515;
$distance = $distance *1.609344;
if($range > round($distance,2))
{
$info[$i] = "\"".$row['lat']."&".$row['lng']."@".$row['name'];
$i=$i+1;
}
$myTwitterResult1 = array($info);
}
else
{
$info[$i] = "\"".$row['lat']."&".$row['lng']."@".$row['name'];
$i=$i+1;
$myTwitterResult1 = array($info);
}
}
$myJSONTweets = json_encode($myTwitterResult1);
echo $myJSONTweets;
도로 거리에 대한 마법의 공식은 없습니다. 먼저 도로지도가 필요합니다. – DevZer0
거리를 찾을 수 없다면? – hemant
Google지도 – DevZer0