13.07.2018, 21:58
A function that determines the distance between two geographic points based on haversine formula
Code:
Code:
PHP код:
stock Float:GeoDistance(Float:lat1, Float:lon1, Float:lat2, Float:lon2)
{
const Float:R = 6371.0087714; // Earth radius
new Float:sin1 = floatsin((lat1 - lat2) /2 );
new Float:sin2 = floatsin((lon1 - lon2) /2 );
return 2 * R * asin(floatsqroot(sin1 * sin1 + sin2 * sin2 * floatcos(lat1) * floatcos(lat2))) * (3.14 / 180);
}
- lat1 - latitude of the first point (in radians)
- lon1 - longitude of the first point (in radians)
- lat2 - latitude of the second point (in radians)
- lon2 - longitude of the second point (in radians)
PHP код:
new Float:lat1 = 52.5243700 * (3.14 / 180);
new Float:lon1 = 13.4105300 * (3.14 / 180);
new Float:lat2 = 50.4546600 * (3.14 / 180);
new Float:lon2 = 30.5238000 * (3.14 / 180);
printf("Latitude 1: %f | Longtitude 1: %f\n\
Latitude 2: %f | Longtitude 2: %f\n\
Distance: %f", lat1, lon1, lat2, lon2, GeoDistance(lat1, lon1, lat2, lon2));