2012-07-04 4 views
2

В моем текущем проекте, который является системой доставки, у меня есть список доступных драйверов доставки, который отображается на странице заказов. Но мне нужно показать расстояние, которое каждая доставка от адреса клиентов. Расстояние должно отображаться рядом с именем каждого водителя. Кто-нибудь знает, как я буду это делать?API Карт Google с PHP, чтобы найти расстояние между двумя точками

+0

, что именно вы и хотите ?? вы хотите, чтобы функция вычисляла расстояние между двумя местоположениями, координаты которых доступны, или вы хотите получить также их координаты геолокации, а затем найти расстояние. – Neji

ответ

6

Предполагая, что вам нужно дистанцию ​​движения, а не расстояние по прямой линии, вы можете использовать веб-службу Directions: Вам нужно сделать запрос http или https из вашего PHP-скрипта и проанализировать ответ JSON или XML.

Документация: https://developers.google.com/maps/documentation/directions/

Например: Бостон, Массачусетс, чтобы Concord, MA через Charlestown, MA и Lexington, MA (JSON) http://maps.googleapis.com/maps/api/directions/json?origin=Boston,MA&destination=Concord,MA&waypoints=Charlestown,MA|Lexington,MA&sensor=false

Бостон, MA в Concord, MA через Чарльзтауне, MA и Lexington, MA (XML) http://maps.googleapis.com/maps/api/directions/xml?origin=Boston,MA&destination=Concord,MA&waypoints=Charlestown,MA|Lexington,MA&sensor=false

Обратите внимание, что существуют пределы использования.

2

Вы можете легко вычислить расстояние между двумя адресами, используя API Карт Google и PHP.

$addressFrom = 'Insert from address'; 
$addressTo = 'Insert to address'; 
$distance = getDistance($addressFrom, $addressTo, "K"); 
echo $distance; 

Вы можете получить GetDistance() функциональные коды отсюда - http://www.codexworld.com/distance-between-two-addresses-google-maps-api-php/

+0

JoyGuru, я пытался заставить это работать, это работает для вас? – Matthew

+0

@Matthew Да, это сработало для меня. – JoyGuru

+0

http://stackoverflow.com/questions/36143960/php-distance-between-2-addresses-with-google-maps - только что отправил вопрос, может быть, вы могли бы дать некоторое представление? Кажется, я все делаю правильно? Просто подумал, что я спрошу. – Matthew

0

это будет вне секунд между 2 место

$origin =urlencode('Optus Sydney International Airport, Airport Drive, Mascot NSW 2020, Australia'); 
$destination = urlencode('Sydney NSW, Australia'); 
$url = "https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=$origin&destinations=$destination&key=your_key"; 
$data = @file_get_contents($url); 
$data = json_decode($data,true); 
echo $data['rows'][0]['elements'][0]['duration']['value']; 
Смежные вопросы