2016-03-01 47 views

回答

0

不完全是,您需要提供更精确的坐标,而不是邮政编码,以便计算距离。我建议你使用这个community protected post中提到的地址。

一旦你有两个坐标你需要计算距离,你应该使用一个称为haversine的公式,这是球形元素(如地球)。我用这个功能是:

function get_distance ($latitudeFrom, $longitudeFrom, $latitudeTo, $longitudeTo) 
{ 
    $earthRadius = 6371; 
    // Convert from degrees to radians 
    $latFrom = deg2rad($latitudeFrom); 
    $lonFrom = deg2rad($longitudeFrom); 
    $latTo = deg2rad($latitudeTo); 
    $lonTo = deg2rad($longitudeTo); 
    // It applies the formula 
    $latDelta = $latTo - $latFrom; 
    $lonDelta = $lonTo - $lonFrom; 
    $angle = 2 * asin(sqrt(pow(sin($latDelta/2), 2) + 
    cos($latFrom) * cos($latTo) * pow(sin($lonDelta/2), 2))); 

    return $angle * $earthRadius; 
} 

如果你需要什么模拟行驶距离,谷歌地图API它自身可以提供你一个简单的要求:

https://maps.googleapis.com/maps/api/distancematrix/json?units=metric&origins=YOUR_ORIGIN&destinations=YOUR_DESTINATION&key=YOUR_API_KEY 

无论如何,有很多参数,所以最好去API并为你打造最好的一个。

希望这有助于

+0

你的函数计算距离的两个点之间,但我不需要这个.....我想收集最近的职位代码..和最近的限制有10英里最大。 –

相关问题