для вычисления расстояния между двумя координатами на земле в php

#php #coordinates #distance #latitude-longitude

#php #координаты #расстояние #широта-долгота

Вопрос:

Ну, я работаю в приложении, основанном на местоположении, и мне нужно найти расстояние между двумя местоположениями на земле на стороне сервера. я кодирую веб-сервис на php.

До сих пор я мог рассчитать расстояние по воздуху, используя формулу Haversine, но теперь я хочу рассчитать расстояние по дороге.

Для этого вопроса могут быть возможные дубликаты, но я не смог найти никакой помощи для вычисления «расстояния между двумя «координатами», т. е. широты и долготы вместо адресов в PHP

Комментарии:

1. Используйте Google Maps API.

Ответ №1:

Используйте Google Distance Matrix API :-

API Google Distance Matrix — это сервис, который предоставляет расстояние и время в пути для матрицы отправлений и пунктов назначения.

Вот код:-

 $q = "http://maps.googleapis.com/maps/api/distancematrix/json?origins=Seattleamp;destinations=San Franciscoamp;mode=drivingamp;sensor=false";

$json = file_get_contents($q);

$details = json_decode($json, TRUE);

echo "<pre>"; print_r($details); echo "</pre>";
  

Узнайте больше в Google Distance Matrix API

Ответ №2:

Это должно помочь вам начать…

 $json = file_get_contents('http://maps.google.com/maps/nav?q=from:Buderim,Australia to:Brisbane,Australia');

$details = json_decode($json, TRUE);

var_dump($details['Directions']['Distance']['meters']);
  

Комментарии:

1. Спасибо за вашу помощь, но я хочу, чтобы это было между двумя широтами, долготами

2. @Saphire Просто поместите туда вместо этого широту и долготу.

3. @alex, это общедоступный API? Или просто что-то, что используется Google? Если это не общедоступный API (то есть то, что Google называет общедоступным), его использование может быть незаконным.

4. @binaryLV Я думаю, что это недокументировано.

5. @SAPHIRE, что еще ты хотел? Разве «2918 метров» — это не то расстояние, которое вы искали?