كيف أحسب المسافة باستخدام Google Map APIs

برمجة


أهلاً

أقوم بإنشاء برنامج لشركة سيارات الأجرة وأريد حساب المسافة من نقطة الالتقاط إلى نقطة النزول وسوف توفر الأجرة. كيف يمكنني تحقيق ذلك باستخدام PHP

ما حاولت:

لقد حاولت بالفعل استخدام distance api ولكنه لا يعمل بالنسبة لي

الحل 1

بافتراض أنك تستخدم واجهة برمجة تطبيقات مصفوفة المسافة (وليس واجهة برمجة تطبيقات الاتجاهات)، فيجب أن يكون نموذج الطلب كما يلي:

https://maps.googleapis.com/maps/api/distancematrix/outputFormat?parameters

ويجب أن يبدو الكود الخاص بك كما يلي:

https://maps.googleapis.com/maps/api/distancematrix/json?destinations=New%20York%20City%2C%20NY&origins=Washington%2C%20DC%7CBoston&units=imperial&key=YOUR_API_KEY

من الواضح أنك تحتاج إلى استبدال “YOUR_API_KEY” بمفتاح API الخاص بك من Google والذي تحتاج إلى إعداد حساب فواتير له Maps Javascript API ممكن. يتم وصف المجموعة الكاملة من المعلمات الاختيارية أدناه. ستتلقى ردًا بتنسيق JSON (أو XML إذا قمت باستبداله json? مع xml? التي تحتاج إلى تحليل. يظهر أدناه مثال لبعض أكواد PHP لتحليل طلب Distance Matrix API. جميع المعلومات التي تحتاجها يمكن العثور عليها في طلب واستجابة API مصفوفة المسافة | جوجل للمطورين[^].

بي أتش بي
<?php
// We need to get the JSON response into a string variable $jsonResponse
// First assign the URL of the Distance Matrix API request to a string
$url = 'href="https://maps.googleapis.com/maps/api/distancematrix/outputFormat?parameters';

// Use file_get_contents() to send a GET request to the URL
$jsonResponse = file_get_contents($url);

// Decode the JSON response
$data = json_decode($jsonResponse, true);

// Check if the status is OK
if ($data['status'] == 'OK') {
    // Loop through each row (origin-destination pair)
    foreach ($data['rows'] as $row) {
        // Loop through each element (information about the origin-destination pair)
        foreach ($row['elements'] as $element) {
            // Check if the status is OK
            if ($element['status'] == 'OK') {
                // Get the distance and duration
                $distance = $element['distance']['text'];
                $duration = $element['duration']['text'];

                // Print the distance and duration
                echo "Distance: $distance\n";
                echo "Duration: $duration\n";
            } else {
                echo "Error: " . $element['status'] . "\n";
            }
        }
    }
} else {
    echo "Error: " . $data['status'] . "\n";
}
?>

طلب واجهة برمجة تطبيقات مصفوفة المسافة:
https://maps.googleapis.com/maps/api/distancematrix/outputFormat?parameters

أين outputFormat قد يكون إما json أو xml.

و parameters يشمل :

origins

نقطة البداية لحساب مسافة السفر والوقت. يمكنك توفير موقع واحد أو أكثر في شكل عنوان، أو إحداثيات خطوط الطول/العرض، أو معرف المكان.
destinations

واحد أو أكثر من المواقع التي لحساب مسافة السفر والوقت.
mode (خياري)
يحدد وسيلة النقل. تشمل الخيارات القيادة والمشي وركوب الدراجات والعبور.
units (خياري)
يحدد نظام الوحدة المطلوب استخدامه عند التعبير عن المسافة كنص. تشمل الخيارات متري وإمبراطوري.
departure_time (خياري)
يحدد وقت المغادرة المطلوب كعدد صحيح بالثواني منذ منتصف ليل 1 يناير 1970 بالتوقيت العالمي المنسق.
traffic_model (خياري)
يحدد الافتراضات التي سيتم استخدامها عند حساب الوقت في حركة المرور. تتضمن الخيارات أفضل التخمينات، والتشاؤم، والتفاؤل.

مايك

コメント

タイトルとURLをコピーしました