Я использую код для получения расстояния между двумя точками, он работает нормально, но проблема в том, что код возвращает данные с символами КМ (например, 56.0 км), поэтому я хочу использовать чистое число, чтобы получить его в милях или использовать его для сравнивая с другими значениями
public function getdistance(Request $request)
{
$currentaddress =$request->currentadd;
$from = '4429 North Broadway, Chicago, IL, United States';
$remFrom = str_replace(',', '', $from); //Remove Commas
$from = urlencode($remFrom);
$to = $currentaddress;
$remTo = str_replace(',', '', $to); //Remove Commas
$to = urlencode($remTo);
$data = file_get_contents("http://maps.googleapis.com/maps/api/distancematrix/json?origins=$from&destinations=$to&language=en-EN&sensor=false");
$data = json_decode($data,true);
$distance = $data['rows'][0]['elements'][0]['distance']['text'];
return response()->json([$distance]);
}
использование $distance = $data['rows'][0]['elements'][0]['distance']['value'];
, это будет расстояние в метрах как число.
Вы можете преобразовать это в мили, разделив на 1609.34
,
Ответ (для этот запрос):
{
"destination_addresses" : [ "New York, NY, USA" ],
"origin_addresses" : [ "4429 North Broadway, Chicago, IL 60640, USA" ],
"rows" : [
{
"elements" : [
{
"distance" : {
"text" : "1,294 km",
"value" : 1293988 // <============ distance in meters
},
"duration" : {
"text" : "12 hours 24 mins",
"value" : 44618 // <============ duration in seconds
},
"status" : "OK"}
]
}
],
"status" : "OK"}
Вы можете указать units
параметр в URL API использовать имперские единицы (футы и мили) вместо метрики. Примечание из документов:
Это устройство настройки системы Влияет только на текст, отображаемый в полях расстояния. Поля расстояния также содержат значения, которые всегда выражаются в метрах.
http://maps.googleapis.com/maps/api/distancematrix/json?origins=$from&destinations=$to&language=en-EN&sensor=false&units=imperial