#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 метров» — это не то расстояние, которое вы искали?