I once had a project where the client wanted customers to be able to search for the nearest vendor to the customers zip code - this project was in PHP but the algorithim contained here can be translated to other languages pretty easily (Note, this returns the value in miles):

```
function computeDistance($lat1,$lon1,$lat2,$lon2){
$lat1 = deg2rad($lat1);
$lon1 = deg2rad($lon1);
$lat2 = deg2rad($lat2);
$lon2 = deg2rad($lon2);
// Find the deltas
$delta_lat = $lat2 - $lat1;
$delta_lon = $lon2 - $lon1;
// radius of earth in miles
$r = 3963.1;
// Find the Great Circle distance
$distance = pow(sin($delta_lat/2.0),2) + cos($lat1) * cos($lat2) * pow(sin($delta_lon/2.0),2);
$distance = $r * 2 * atan2(sqrt($distance),sqrt(1-$distance));
return $distance;
}
```

## Comments

Bill

That is probably a good suggestion however in my case I don’t know if is any more efficient. I’ll have to experiment. There are only about 10 global distributors and I don’t have a zipcode db to compute against. I have the coordinates of the warehouses and then a random zipcode. I then have to find the warehouse nearest the zipcode

Paul Hastings

and i’ll tell you the same thing i told kinky ben, use a bounding box instead.