google distancematrix api — PHP Рассчитать расстояние от 2 адресов — онлайн

Я взял этот код из stackoverflow, чтобы вычислить адрес:

$from = urlencode($from);
$to = urlencode($to.', Челябинс');
$data = file_get_contents('http://maps.googleapis.com/maps/api/distancematrix/json?origins='.$from.'&destinations='.$to.'&language=ru-RU&sensor=false&mode=driving');//&key=AIzaSyDAJ05io1966D_KmF7lbRsucehr8GtUBqk');
$data = json_decode($data);
$time = 0;
$distance = 0;
foreach($data->rows[0]->elements as $road) {
$time += $road->duration->value;
$distance += $road->distance->value;
}
$table[0]=$distance;
$table[1]=$time;

Он работает очень хорошо, когда у меня есть файл на моем компьютере.
Но когда я выложил его в сеть, он больше не работает.

Кто-нибудь мог бы понять, что может пойти не так?
Я также читал, что для API нам нужен ключ, но в моем случае я хочу использовать его с веб-сайта HTML / PHP.

Заранее спасибо за помощь

Редактировать :

Не могли бы найти хороший пост об этой проблеме:

[Почему не работает file_get_contents?

На самом деле проблема (если я правильно понял) из-за параметра сервера, я получаю следующее сообщение:

Предупреждение: file_get_contents (): http: // обертка отключена в
настройка сервера с помощью allow_url_fopen = 0

Это параметр, который мы можем изменить сами? Или мы должны попросить веб-хостера изменить его?

0

Решение

Как показано в вопросе, необходимо изменить параметр allow_url_fopen в файле PHP.INI. Я сделал это и теперь работает нормально.
В моем случае (хостинг хостпа) я мог сделать это сам.

0

Другие решения

Матрица расстояний теперь является обязательной. Ключ API gi является пропуском без ключевой матрицы расстояний.

Пожалуйста, используйте этот пример кода:

$distance_data = file_get_contents(
'https://maps.googleapis.com/maps/api/distancematrix/json?&origins='.urlencode($origin).'&destinations='.urlencode($destination).'&key=AIzaSyD6YkF-BVV1LNLOz5n3zeL9bi1farzUX8k'
);
$distance_arr = json_decode($distance_data);
0

По вопросам рекламы [email protected]