Доступ к готовым решениям

Переход в группу "Пользователь"

300.00
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Функция GeoDistance - расстояние между двумя географическими точками

#Samurai

Изучающий
Регистрация
16 Сен 2017
Сообщения
421
Лучшие ответы
0
Репутация
229
Функция, которая определяет расстояние между двумя географическими точками, основанная на формуле гаверсинуса.
[HR][/HR]
PHP:
stock Float:GeoDistance(Float:lat1, Float:lon1, Float:lat2, Float:lon2)
{
	const Float:R = 6371.0087714;
	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 - широта первой точки (в радианах)
  • lon1 - долгота первой точки (в радианах)
  • lat2 - широта второй точки (в радианах)
  • lon2 - долгота второй точки (в радианах)

Пример использования:
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("Широта 1: %f | Долгота 1: %f\n\
		Широта 2: %f | Долгота 2: %f\n\
		Расстояние: %f", lat1, lon1, lat2, lon2, GeoDistance(lat1, lon1, lat2, lon2));
 
Последнее редактирование:
Сверху Снизу