مقدمة
يتّخذ طلب بيانات من واجهة برمجة التطبيقات Distance Matrix API الشكل التالي:
https://maps.googleapis.com/maps/api/distancematrix/outputFormat?parameters
حيث يمكن أن تكون outputFormat إحدى القيمتين التاليتين:
- يشير
json(موصى به) إلى الإخراج بتنسيق JavaScript Object Notation (JSON). - يشير
xmlإلى الإخراج بتنسيق XML.
بعض المَعلمات مطلوبة والبعض الآخر اختياري. وكما هو معتاد في عناوين URL، يتم الفصل بين جميع المَعلمات باستخدام رمز العطف اللاتيني (&). يجب أن تكون جميع الأحرف المحجوزة (مثل علامة الجمع "+") مرمَّزة كعنوان URL. في ما يلي قائمة بالمعلمات وقيمها المحتملة.
المعلمات المطلوبة
-
الوجهات
موقع جغرافي واحد أو أكثر لاستخدامه كنقطة نهاية عند حساب مسافة السفر ومدته تتشابه خيارات مَعلمة الوجهات مع خيارات مَعلمة المصادر.
-
المصادر
تمثّل هذه السمة نقطة البداية لاحتساب مسافة الرحلة ومدتها. يمكنك تقديم موقع جغرافي واحد أو أكثر مفصولين بحرف التوجيه (|)، وذلك على شكل رقم تعريف المكان أو عنوان أو الإحداثيات:
-
معرّف المكان: إذا قدّمت معرّف مكان، يجب أن تسبقه بالبادئة
place_id:. -
العنوان: إذا أدخلت عنوانًا، ستحوّل الخدمة السلسلة إلى إحداثيات خطوط العرض والطول، وذلك من أجل احتساب المسافة. قد تختلف هذه الإحداثية عن الإحداثية التي تعرضها Geocoding API، مثلاً قد تعرض مدخل مبنى بدلاً من مركزه.
ملاحظة: يُفضّل استخدام معرّفات الأماكن على استخدام العناوين أو إحداثيات خطوط الطول والعرض. سيؤدي استخدام الإحداثيات دائمًا إلى تحديد النقطة على الطريق الأقرب إلى هذه الإحداثيات، وقد لا تكون هذه النقطة نقطة وصول إلى الموقع أو حتى طريقًا يؤدي بسرعة أو بأمان إلى الوجهة. سيؤدي استخدام العنوان إلى عرض المسافة إلى وسط المبنى، وليس إلى مدخل المبنى.
- الإحداثيات: إذا مرّرت إحداثيات خط العرض/خط الطول، سيتم محاذاتها إلى أقرب طريق. يُفضّل تمرير معرّف مكان. في حال تمرير إحداثيات، تأكَّد من عدم وجود مسافة بين قيمتَي خط الطول وخط العرض.
-
يجب تنسيق رموز Plus Codes كرمز عالمي أو رمز مركّب. يمكنك تنسيق رموز Plus Codes كما هو موضّح هنا (يتم تحويل علامات الجمع إلى ترميز URL باستخدام %2B، ويتم تحويل المسافات إلى ترميز URL باستخدام %20):
-
الرمز العالمي هو رمز منطقة مكوّن من 4 أحرف ورمز محلي مكوّن من 6 أحرف أو أكثر (يتم ترميز
849VCWC8+R9إلى849VCWC8%2BR9). -
الرمز المركّب هو رمز محلي يتألف من 6 أحرف أو أكثر
مع موقع جغرافي محدّد (يتم ترميز
CWC8+R9 Mountain View, CA, USAإلىCWC8%2BR9%20Mountain%20View%20CA%20USA).
-
الرمز العالمي هو رمز منطقة مكوّن من 4 أحرف ورمز محلي مكوّن من 6 أحرف أو أكثر (يتم ترميز
-
الخط المتعدد الترميز بدلاً من ذلك، يمكنك تقديم مجموعة من الإحداثيات المرمّزة باستخدام خوارزمية الخط المتعدد الترميز. ويكون ذلك مفيدًا بشكل خاص إذا كان لديك عدد كبير من نقاط المصدر، لأنّ عنوان URL يكون أقصر بكثير عند استخدام خطوط متعدّدة مرمّزة.
-
يجب أن تبدأ الخطوط المتعددة المرمّزة بالبادئة
enc:وأن تنتهي بنقطتَي رأسيتَين:. على سبيل المثال:origins=enc:gfo}EtohhU: -
يمكنك أيضًا تضمين خطوط متعددة الأضلاع مشفّرة، مع الفصل بينها باستخدام الرمز
العمودي
|. على سبيل المثال:origins=enc:wc~oAwquwMdlTxiKtqLyiK:|enc:c~vnAamswMvlTor@tjGi}L:|enc:udymA{~bxM:
-
يجب أن تبدأ الخطوط المتعددة المرمّزة بالبادئة
-
معرّف المكان: إذا قدّمت معرّف مكان، يجب أن تسبقه بالبادئة
المعلمات الاختيارية
-
arrival_time
تحدّد هذه السمة الوقت المفضّل للوصول عند طلب اتجاهات النقل العام، وذلك بالثواني منذ منتصف ليل 1 يناير 1970 بالتوقيت العالمي المتفق عليه. يمكنك تحديد
departure_timeأوarrival_time، ولكن ليس كليهما. يجب تحديد قيمةarrival_timeكعدد صحيح. -
تجنُّب
يمكن احتساب المسافات التي تلتزم بقيود معيّنة. يتم الإشارة إلى القيود باستخدام المَعلمة avoid، بالإضافة إلى وسيطة لتلك المَعلمة تشير إلى القيد الذي يجب تجنُّبه. تتوفّر القيود التالية:
-
يشير
tollsإلى أنّ المسار المحسوب يجب أن يتجنّب الطرق/الجسور التي تتطلّب دفع رسوم عبور. -
يشير
highwaysإلى أنّ المسار المحسوب يجب أن يتجنّب الطرق السريعة. -
يشير
ferriesإلى أنّ المسار المحسوب يجب أن يتجنّب العبّارات. -
يشير
indoorإلى أنّ المسار المحسوب يجب أن يتجنّب الخطوات الداخلية في اتجاهات المشي والنقل العام.
يمكنك طلب مسار يتجنّب أي مجموعة من رسوم العبور والطرق السريعة والعبّارات من خلال تمرير كلا القيدين إلى المَعلمة avoid. على سبيل المثال
avoid=tolls|highways|ferries.ملاحظة: لا يؤدي إضافة قيود إلى استبعاد الطرق التي تتضمّن الميزة المحظورة، بل يؤدي إلى ترجيح النتائج لصالح الطرق الأكثر ملاءمة. -
يشير
-
departure_time
تحدّد هذه السمة وقت المغادرة المفضّل. يمكنك تحديد الوقت كعدد صحيح بالثواني منذ منتصف ليل 1 يناير 1970 حسب التوقيت العالمي المنسق. في حال تحديد قيمة
departure_timeبعد 9999-12-31T23:59:59.999999999Z، ستعود واجهة برمجة التطبيقات إلى استخدام القيمة 9999-12-31T23:59:59.999999999Z.departure_timeبدلاً من ذلك، يمكنك تحديد القيمة now، ما يؤدي إلى ضبط وقت المغادرة على الوقت الحالي (مع مراعاة الدقة إلى أقرب ثانية). يمكن تحديد وقت المغادرة في حالتين:-
بالنسبة إلى الطلبات التي يكون فيها وضع السفر هو النقل العام، يمكنك اختياريًا تحديد أحد الخيارين
departure_timeأوarrival_time. إذا لم يتم تحديد أي من الوقتين، سيتم ضبط القيمة التلقائيةdeparture_timeعلى الوقت الحالي (أي أنّ وقت المغادرة سيتم ضبطه تلقائيًا على الوقت الحالي). -
بالنسبة إلى الطلبات التي تكون فيها وسيلة النقل هي القيادة: يمكنك تحديد
departure_timeلتلقّي مسار ومدة رحلة (حقل الردّ: duration_in_traffic) يأخذان في الاعتبار أحوال حركة المرور. يجب ضبطdeparture_timeعلى الوقت الحالي أو وقت في المستقبل. لا يمكن أن يكون في الماضي.
ملاحظة: في حال عدم تحديد وقت المغادرة، يستند اختيار المسار والمدة إلى شبكة الطرق ومتوسط أحوال حركة المرور غير المرتبطة بالوقت. قد تختلف نتائج طلب معيّن بمرور الوقت بسبب التغييرات في شبكة الطرق، وتعديل متوسط أحوال حركة المرور، وطبيعة الخدمة الموزّعة. قد تختلف النتائج أيضًا بين المسارات المتكافئة تقريبًا في أي وقت أو تردد.ملاحظة: تقتصر طلبات Distance Matrix التي تحدّدdeparture_timeعند استخدامmode=drivingعلى 100 عنصر كحد أقصى لكل طلب. يتم تحديد عدد العناصر من خلال ضرب عدد المصادر في عدد الوجهات. -
بالنسبة إلى الطلبات التي يكون فيها وضع السفر هو النقل العام، يمكنك اختياريًا تحديد أحد الخيارين
-
language
اللغة التي سيتم عرض النتائج بها
- اطّلِع على قائمة اللغات المتاحة. تُحدّث Google غالبًا اللغات المتوافقة، لذا قد لا تكون هذه القائمة شاملة.
-
في حال عدم توفير
language، تحاول واجهة برمجة التطبيقات استخدام اللغة المفضّلة كما هو محدّد في العنوانAccept-Language. - تبذل واجهة برمجة التطبيقات قصارى جهدها لتوفير عنوان شارع يمكن قراءته من قِبل المستخدمين والسكان المحليين. لتحقيق هذا الهدف، تعرض الخدمة عناوين الشوارع باللغة المحلية، مع ترجمتها إلى نص يمكن للمستخدم قراءته إذا لزم الأمر، مع مراعاة اللغة المفضّلة. ويتم عرض جميع العناوين الأخرى باللغة المفضّلة. يتم عرض جميع مكونات العنوان باللغة نفسها، والتي يتم اختيارها من المكون الأول.
- إذا لم يتوفّر اسم باللغة المفضّلة، تستخدم واجهة برمجة التطبيقات أقرب نتيجة مطابِقة.
- للغة المفضّلة تأثير بسيط على مجموعة النتائج التي تختار واجهة برمجة التطبيقات عرضها، وعلى ترتيب عرضها. يفسّر برنامج الترميز الجغرافي الاختصارات بشكل مختلف حسب اللغة، مثل اختصارات أنواع الشوارع أو المرادفات التي قد تكون صالحة في لغة ما ولكن ليس في لغة أخرى. على سبيل المثال، utca وtér هما كلمتان مترادفتان لكلمة "شارع" باللغة الهنغارية.
-
الوضع
لحساب المسافات والاتجاهات، يمكنك تحديد وسيلة النقل التي تريد استخدامها. يتم استخدام الوضع
DRIVINGتلقائيًا. يتم تلقائيًا احتساب الاتجاهات على أنّها اتجاهات قيادة. تتوفّر وسائل النقل التالية:-
يشير الخيار
driving(تلقائي) إلى اتجاهات القيادة العادية أو المسافة باستخدام شبكة الطرق. -
walkingيطلب اتجاهات المشي أو المسافة باستخدام مسارات المشاة والأرصفة (حيثما توفّرت). -
bicyclingيطلب اتجاهات أو مسافة ركوب الدراجات باستخدام الطرق المخصّصة للدراجات والشوارع المفضّلة (حيثما توفّرت). -
transitطلبات الاتجاهات أو المسافة باستخدام مسارات النقل العام (حيثما تتوفّر) إذا ضبطت الوضع على "نقل"، يمكنك بشكل اختياري تحديد إماdeparture_timeأوarrival_time. إذا لم يتم تحديد أي من الوقتين، سيتم ضبط القيمة التلقائيةdeparture_timeعلى الوقت الحالي (أي أنّ وقت المغادرة التلقائي هو الوقت الحالي). يمكنك أيضًا تضمينtransit_modeو/أوtransit_routing_preferenceبشكل اختياري.
ملاحظة: قد لا تتضمّن اتجاهات المشي وركوب الدراجات في بعض الأحيان مسارات واضحة للمشاة أو راكبي الدراجات، لذا ستعرض هذه الاتجاهات تحذيرات في النتيجة التي يتم عرضها للمستخدم.ملاحظة: تتوفّر رحلات النقل العام لمدة تصل إلى 7 أيام في الماضي أو 100 يوم في المستقبل، وذلك حسب توفّر معلومات النقل العام التي يقدّمها موفّرو البيانات. تتغيّر جداول النقل العام بشكل متكرّر، وقد تتغيّر رحلات النقل العام المتاحة بمرور الوقت، ولا يمكن ضمان تقديم نتائج متّسقة للتوقعات قبل وقت طويل. -
يشير الخيار
-
المنطقة
رمز المنطقة، ويتم تحديده كقيمة من حرفين لنطاق المستوى الأعلى الذي يتم ترميزه حسب البلد (ccTLD). تتطابق معظم رموز نطاقات المستوى الأعلى لرمز البلد مع رموز ISO 3166-1، مع بعض الاستثناءات البارزة. على سبيل المثال، نطاق المستوى الأعلى لرمز البلد في المملكة المتحدة هو "uk" (.co.uk)، بينما رمز ISO 3166-1 هو "gb" (وهو يشير تقنيًا إلى الكيان "المملكة المتحدة لبريطانيا العظمى وأيرلندا الشمالية").
-
traffic_model
تحدّد هذه السمة الافتراضات التي يجب استخدامها عند احتساب الوقت المستغرَق في حركة المرور. يؤثر هذا الخيار في القيمة المعروضة في الحقل duration_in_traffic ضمن الاستجابة، والذي يتضمّن الوقت المتوقّع في حركة المرور استنادًا إلى المعدّلات السابقة. لا يمكن تحديد المَعلمة
traffic_modelإلا لاتجاهات القيادة التي يتضمّن الطلب فيهاdeparture_time. القيم المتاحة لهذه المَعلمة هي:-
تشير
best_guess(القيمة التلقائية) إلى أنّ duration_in_traffic المعروضة يجب أن تكون أفضل تقدير لمدة الرحلة استنادًا إلى المعلومات المتوفّرة عن كلّ من حالة حركة المرور السابقة وحركة المرور الحالية. تزداد أهمية بيانات حركة المرور المباشرة كلما اقترب وقتdeparture_timeمن الوقت الحالي. -
يشير
pessimisticإلى أنّ المدة المعروضة في duration_in_traffic يجب أن تكون أطول من مدة الرحلة الفعلية في معظم الأيام، على الرغم من أنّ بعض الأيام التي تكون فيها أحوال حركة المرور سيئة بشكل خاص قد تتجاوز هذه القيمة. -
يشير
optimisticإلى أنّ مدة السفر التي يتم عرضها في السمة duration_in_traffic يجب أن تكون أقصر من مدة السفر الفعلية في معظم الأيام، مع العلم أنّ بعض الأيام التي تكون فيها حالة حركة المرور جيدة جدًا قد تكون أسرع من هذه القيمة.
ستوفّر القيمة التلقائية لـ
best_guessالتوقّعات الأكثر فائدة لمعظم حالات الاستخدام. من المحتمل أن تكونbest_guessمدة الرحلة المتوقّعة أقصر منoptimistic، أو أطول منpessimistic، وذلك بسبب الطريقة التي يدمج بها نموذج التوقّعbest_guessمعلومات حركة المرور المباشرة. -
تشير
-
transit_mode
تحدّد هذه السمة وسيلة نقل عام مفضّلة واحدة أو أكثر. لا يمكن تحديد هذه المَعلمة إلا لاتجاهات النقل العام. تتيح المَعلمة الوسيطات التالية:
-
يشير
busإلى أنّ المسار المحسوب يجب أن يفضّل التنقّل بالحافلة. -
يشير الرمز
subwayإلى أنّ المسار المحسوب يجب أن يفضّل التنقّل بواسطة مترو الأنفاق. -
يشير
trainإلى أنّ المسار المحسوب يجب أن يفضّل التنقّل بالقطار. -
يشير
tramإلى أنّ المسار المحسوب يجب أن يفضّل التنقّل بالترام والقطار الخفيف. -
يشير
railإلى أنّ المسار المحسوب يجب أن يفضّل التنقّل بالقطار والترام والقطار الخفيف ومترو الأنفاق. وهذا يعادلtransit_mode=train|tram|subway.
-
يشير
-
transit_routing_preference
تحدّد هذه السمة الإعدادات المفضّلة لمسارات النقل العام. باستخدام هذه المَعلمة، يمكنك تحديد الخيارات التي يتم عرضها بدلاً من قبول أفضل مسار تلقائي تختاره واجهة برمجة التطبيقات. لا يمكن تحديد هذه المَعلمة إلا لاتجاهات النقل العام. تتيح المَعلمة الوسيطات التالية:
-
يشير الرمز
less_walkingإلى أنّ المسار المحسوب يجب أن يفضّل السير لمسافات محدودة. -
يشير
fewer_transfersإلى أنّ المسار المحسوب يجب أن يفضّل عددًا محدودًا من عمليات النقل.
-
يشير الرمز
-
وحدة
تحدّد هذه السمة نظام الوحدات الذي سيتم استخدامه عند عرض النتائج.
ملاحظة: يؤثر إعداد نظام الوحدات هذا فقط في النص المعروض ضمن حقول المسافة. تحتوي حقول المسافة أيضًا على قيم يتم التعبير عنها دائمًا بالمتر.
أمثلة على الطلبات
يستخدم هذا المثال إحداثيات خطوط الطول والعرض لتحديد إحداثيات الوجهة:
عنوان URL
https://maps.googleapis.com/maps/api/distancematrix/json ?destinations=40.659569%2C-73.933783%7C40.729029%2C-73.851524%7C40.6860072%2C-73.6334271%7C40.598566%2C-73.7527626 &origins=40.6655101%2C-73.89188969999998 &key=YOUR_API_KEY
curl
curl -L -X GET 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=40.6655101%2C-73.89188969999998&destinations=40.659569%2C-73.933783%7C40.729029%2C-73.851524%7C40.6860072%2C-73.6334271%7C40.598566%2C-73.7527626&key=YOUR_API_KEY'
يستخدم هذا المثال رموز Plus Codes لتحديد إحداثيات الوجهة:
عنوان URL
https://maps.googleapis.com/maps/api/distancematrix/json ?destinations=San%20Francisco &origins=849VCWC8%2BR9 &key=YOUR_API_KEY
curl
curl -L -X GET 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=849VCWC8%2BR9&destinations=San%20Francisco&key=YOUR_API_KEY'
يعرض هذا المثال الطلب نفسه باستخدام خط متعدد الأضلاع مرمّز:
عنوان URL
https://maps.googleapis.com/maps/api/distancematrix/json ?destinations=enc%3A_kjwFjtsbMt%60EgnKcqLcaOzkGari%40naPxhVg%7CJjjb%40cqLcaOzkGari%40naPxhV%3A &origins=40.6655101%2C-73.89188969999998 &key=YOUR_API_KEY
curl
curl -L -X GET 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=40.6655101%2C-73.89188969999998&destinations=enc%3A_kjwFjtsbMt%60EgnKcqLcaOzkGari%40naPxhVg%7CJjjb%40cqLcaOzkGari%40naPxhV%3A&key=YOUR_API_KEY'
معلومات حركة المرور
يتم استخدام معلومات حركة المرور عندما تنطبق جميع الشروط التالية (هذه هي الشروط المطلوبة لتلقّي الحقل duration_in_traffic في استجابة Distance Matrix):
- تكون المَعلمة
modeالخاصة بالسفرdrivingأو لم يتم تحديدها (drivingهو وضع السفر التلقائي). - يتضمّن الطلب المَعلمة
departure_timeالصالحة. يمكن ضبطdeparture_timeعلى الوقت الحالي أو على وقت في المستقبل. لا يمكن أن يكون في الماضي.
يمكنك اختياريًا تضمين المَعلمة traffic_model في طلبك لتحديد الافتراضات التي سيتم استخدامها عند احتساب الوقت المستغرَق في حركة المرور.
يبدأ عنوان URL التالي طلبًا للحصول على "مصفوفة المسافات" من أجل حساب مسافات القيادة بين بوسطن أو تشارلزتاون في ماساتشوستس، وبين ليكسينغتون أو كونكورد في ماساتشوستس. يتضمّن الطلب وقت المغادرة، ويستوفي جميع المتطلبات لعرض الحقل duration_in_traffic في استجابة Distance Matrix.
عنوان URL
https://maps.googleapis.com/maps/api/distancematrix/json ?departure_time=now &destinations=Lexington%2CMA%7CConcord%2CMA &origins=Boston%2CMA%7CCharlestown%2CMA &key=YOUR_API_KEY
curl
curl -L -X GET 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=Boston%2CMA%7CCharlestown%2CMA&destinations=Lexington%2CMA%7CConcord%2CMA&departure_time=now&key=YOUR_API_KEY'
JSON
{ "destination_addresses": ["Lexington, MA, USA", "Concord, MA, USA"], "origin_addresses": ["Boston, MA, USA", "Charlestown, Boston, MA, USA"], "rows": [ { "elements": [ { "distance": { "text": "33.3 km", "value": 33253 }, "duration": { "text": "27 mins", "value": 1620 }, "duration_in_traffic": { "text": "34 mins", "value": 2019 }, "status": "OK", }, { "distance": { "text": "41.5 km", "value": 41491 }, "duration": { "text": "33 mins", "value": 1981 }, "duration_in_traffic": { "text": "39 mins", "value": 2342 }, "status": "OK", }, ], }, { "elements": [ { "distance": { "text": "31.1 km", "value": 31100 }, "duration": { "text": "26 mins", "value": 1543 }, "duration_in_traffic": { "text": "29 mins", "value": 1754 }, "status": "OK", }, { "distance": { "text": "39.3 km", "value": 39338 }, "duration": { "text": "32 mins", "value": 1904 }, "duration_in_traffic": { "text": "35 mins", "value": 2077 }, "status": "OK", }, ], }, ], "status": "OK", }
XML
OK Boston, MA, USA Charlestown, Boston, MA, USA Lexington, MA, USA Concord, MA, USA |
OK 1620 27 mins 33253 33.3 km 2018 34 mins OK 1981 33 mins 41491 41.5 km 2342 39 mins |
OK 1543 26 mins 31100 31.1 km 1759 29 mins OK 1904 32 mins 39338 39.3 km 2077 35 mins
معدِّلات المواقع الجغرافية
يمكنك استخدام معدِّلات الموقع الجغرافي للإشارة إلى كيفية وصول السائقين إلى موقع جغرافي معيّن، وذلك باستخدام المعدِّل side_of_road لتحديد الجانب الذي يجب استخدامه من الطريق، أو من خلال تحديد اتجاه للإشارة إلى اتجاه السفر الصحيح.
تحديد أنّ المسارات المحسوبة يجب أن تمرّ بجانب معيّن من الطريق
عند تحديد موقع جغرافي، يمكنك طلب أن يمر المسار المحسوب بأي جانب من الطريق يميل إليه نقطة على المسار باستخدام البادئة side_of_road:. على سبيل المثال، سيعرض هذا الطلب المسافة الخاصة بمسار طويل لكي تنتهي المركبة على جانب الطريق الذي تم توجيه نقطة على المسار إليه:
عنوان URL
https://maps.googleapis.com/maps/api/distancematrix/json ?destinations=side_of_road%3A37.7663444%2C-122.4412006 &origins=37.7680296%2C-122.4375126 &key=YOUR_API_KEY
curl
curl -L -X GET 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=37.7680296%2C-122.4375126&destinations=side_of_road%3A37.7663444%2C-122.4412006&key=YOUR_API_KEY'
عند استخدام side_of_road: مع خطوط متعدّدة الأضلاع مشفّرة، يتم تطبيق المعدِّل على كل موقع جغرافي على طول الخط المتعدّد الأضلاع. على سبيل المثال، تستخدم الوجهتان في هذا الطلب المَعلمة نفسها:
عنوان URL
https://maps.googleapis.com/maps/api/distancematrix/json ?destinations=side_of_road%3Aenc%3A%7BoqeF%60fejV%5BnC%3A &origins=San%20Francisco%20City%20hall &key=YOUR_API_KEY
curl
curl -L -X GET 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=San%20Francisco%20City%20hall&destinations=side_of_road%3Aenc%3A%7BoqeF%60fejV%5BnC%3A&key=YOUR_API_KEY'
لا يمكن استخدام المعدِّل side_of_road: إلا مع القيد التالي:
- قيمة المَعلمة
modeالخاصة بالسفر هيdriving، أو لم يتم تحديدها (drivingهو وضع السفر التلقائي).
تحديد أنّ المسارات المحسوبة يجب أن تتضمّن عنوانًا معيّنًا
عند تحديد موقع جغرافي، يمكنك طلب أن يمر المسار المحسوب بالموقع الجغرافي في اتجاه معيّن. يتم تحديد هذا العنوان باستخدام البادئة
heading=X:، حيث يمثّل X قيمة عددية صحيحة بالدرجات تتراوح بين 0 (شامل) و360 (غير شامل). يشير العنوان 0 إلى الشمال، و90 إلى الشرق،
ويستمر في اتجاه عقارب الساعة. على سبيل المثال، في هذا الطلب، يتّجه المسار المحسوب شرقًا من نقطة البداية، ثم ينعطف على شكل حرف U:
عنوان URL
https://maps.googleapis.com/maps/api/distancematrix/json ?destinations=37.773245%2C-122.469502 &origins=heading%3D90%3A37.773279%2C-122.468780 &key=YOUR_API_KEY
curl
curl -L -X GET 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=heading%3D90%3A37.773279%2C-122.468780&destinations=37.773245%2C-122.469502&key=YOUR_API_KEY'
لا يمكن استخدام المعدِّل heading=X: إلا مع القيود التالية:
- تكون قيمة المَعلمة
modeالخاصة بالسفرdrivingأوbicyclingأو غير محدّدة (drivingهي وسيلة النقل التلقائية). - لم يتم تحديد معدِّل
side_of_roadللموقع الجغرافي نفسه. - يتم تحديد الموقع الجغرافي باستخدام قيمة خط العرض/خط الطول. لا يمكنك استخدام
headingمع العناوين أو معرّفات الأماكن أو الخطوط المتعددة المرمّزة.
طلبات واستجابات "مصفوفة المسافة"
يظهر أدناه نموذج لطلب HTTP يطلب المسافة والمدة من فانكوفر، كولومبيا البريطانية، كندا ومن سياتل، واشنطن، الولايات المتحدة الأمريكية إلى سان فرانسيسكو، كاليفورنيا، الولايات المتحدة الأمريكية وإلى فيكتوريا، كولومبيا البريطانية، كندا.
عنوان URL
https://maps.googleapis.com/maps/api/distancematrix/json ?destinations=San%20Francisco%7CVictoria%20BC &language=fr-FR &mode=bicycling &origins=Vancouver%20BC%7CSeattle &key=YOUR_API_KEY
curl
curl -L -X GET 'https://maps.googleapis.com/maps/api/distancematrix/json?origins=Vancouver%20BC%7CSeattle&destinations=San%20Francisco%7CVictoria%20BC&mode=bicycling&language=fr-FR&key=YOUR_API_KEY'
سيعرض هذا الطلب أربعة عناصر، أي موقعَين جغرافيَين مضروبَين في وجهتَين:
| من فانكوفر إلى سان فرانسيسكو | من فانكوفر إلى فيكتوريا |
| من سياتل إلى سان فرانسيسكو | سياتل إلى فيكتوريا |
يتم عرض النتائج في صفوف، ويحتوي كل صف على مصدر واحد مقترن بكل وجهة.
JSON
{ "destination_addresses": ["San Francisco, Californie, États-Unis", "Victoria, BC, Canada"], "origin_addresses": ["Vancouver, BC, Canada", "Seattle, Washington, États-Unis"], "rows": [ { "elements": [ { "distance": { "text": "1 712 km", "value": 1711765 }, "duration": { "text": "3 jours 16 heures", "value": 318119 }, "status": "OK", }, { "distance": { "text": "140 km", "value": 139695 }, "duration": { "text": "6 heures 49 minutes", "value": 24567 }, "status": "OK", }, ], }, { "elements": [ { "distance": { "text": "1 452 km", "value": 1451704 }, "duration": { "text": "3 jours 2 heures", "value": 266680 }, "status": "OK", }, { "distance": { "text": "146 km", "value": 146500 }, "duration": { "text": "2 heures 53 minutes", "value": 10374 }, "status": "OK", }, ], }, ], "status": "OK", }
XML
OK Vancouver, BC, Canada Seattle, Washington, États-Unis San Francisco, Californie, États-Unis Victoria, BC, Canada |
OK 318119 3 jours 16 heures 1711765 1 712 km OK 24567 6 heures 49 minutes 139695 140 km |
OK 266680 3 jours 2 heures 1451704 1 452 km OK 10374 2 heures 53 minutes 146500 146 km
DistanceMatrixResponse
| الحقل | مطلوب | النوع | الوصف |
|---|---|---|---|
|
مطلوب | Array<string> |
مصفوفة من العناوين التي تعرضها واجهة برمجة التطبيقات استجابةً لطلبك الأصلي. وكما هو الحال مع |
|
مطلوب | Array<string> |
مصفوفة من العناوين التي تعرضها واجهة برمجة التطبيقات استجابةً لطلبك الأصلي. ويتم تنسيقها بواسطة أداة الترميز الجغرافي وتتم أقلمتها وفقًا لمعلَمة اللغة التي يتم تمريرها مع الطلب. يجب قراءة هذا المحتوى كما هو، ويُرجى عدم تحليل العناوين المنسَّقة آليًا. |
|
مطلوب | Array<DistanceMatrixRow> |
تمثّل هذه السمة مصفوفة من العناصر، يحتوي كل منها بدوره على عناصر يمكنك الاطّلاع على DistanceMatrixRow لمزيد من المعلومات. |
|
مطلوب | DistanceMatrixStatus |
يحتوي على حالة الطلب، وقد يتضمّن معلومات تصحيح الأخطاء لمساعدتك في معرفة سبب تعذُّر تلبية الطلب. لمزيد من المعلومات، يُرجى الاطّلاع على DistanceMatrixStatus. |
|
اختياري | سلسلة |
سلسلة تحتوي على نص يمكن لشخص عادي قراءتها يتضمّن أي أخطاء تمت مواجهتها أثناء معالجة الطلب. |
DistanceMatrixStatus
رموز الحالة التي تعرضها الخدمة
- يشير
OKإلى أنّ الردّ يحتوي على نتيجة صالحة. -
يشير الرمز
INVALID_REQUESTإلى أنّ الطلب المقدَّم غير صالح. -
يشير
MAX_ELEMENTS_EXCEEDEDإلى أنّ عدد المنتجات من المصادر والوجهات يتجاوز الحدّ الأقصى المسموح به لكل طلب بحث. -
يشير
MAX_DIMENSIONS_EXCEEDEDإلى أنّ عدد نقاط الأصل أو الوجهات يتجاوز الحدّ الأقصى المسموح به لكل طلب بحث. -
يشير
OVER_DAILY_LIMITإلى أي مما يلي:- مفتاح واجهة برمجة التطبيقات غير متوفّر أو غير صالح.
- لم يتم تفعيل الفوترة في حسابك.
- تم تجاوز الحد الأقصى للاستخدام الذي تم فرضه ذاتيًا.
- لم تعُد طريقة الدفع المقدَّمة صالحة (على سبيل المثال، انتهت صلاحية بطاقة ائتمان).
-
يشير الرمز
OVER_QUERY_LIMITإلى أنّ الخدمة تلقّت عددًا كبيرًا جدًا من الطلبات من تطبيقك خلال الفترة الزمنية المسموح بها. -
يشير الرمز
REQUEST_DENIEDإلى أنّ الخدمة رفضت استخدام تطبيقك لخدمة "مصفوفة المسافات". -
يشير الرمز
UNKNOWN_ERRORإلى تعذُّر معالجة طلب بشأن "مصفوفة المسافات" بسبب حدوث خطأ في الخادم. قد ينجح الطلب إذا أعدت المحاولة.
DistanceMatrixRow
| الحقل | مطلوب | النوع | الوصف |
|---|---|---|---|
|
مطلوب | Array<DistanceMatrixElement> |
عندما تعرض واجهة برمجة التطبيقات Distance Matrix API النتائج، تضعها ضمن مصفوفة صفوف JSON. حتى إذا لم يتم عرض أي نتائج (مثلما يحدث عندما لا تكون المصادر و/أو الوجهات متوفّرة)، سيتم عرض مصفوفة فارغة. يتم ترتيب الصفوف وفقًا للقيم في المَعلمة origin الخاصة بالطلب. يتطابق كل صف مع مصدر، ويتطابق كل عنصر ضمن هذا الصف مع عملية ربط بين المصدر وقيمة وجهة. تحتوي كل مصفوفة صف على إدخال واحد أو أكثر من إدخالات العناصر، والتي بدورها تحتوي على معلومات حول زوج واحد من المصدر والوجهة. لمزيد من المعلومات، يُرجى الاطّلاع على DistanceMatrixElement. |
DistanceMatrixElement
| الحقل | مطلوب | النوع | الوصف |
|---|---|---|---|
|
مطلوب | DistanceMatrixElementStatus |
تمثّل هذه السمة حالة العنصر. لمزيد من المعلومات، يمكنك الاطّلاع على DistanceMatrixElementStatus. |
|
اختياري | TextValueObject |
إجمالي مسافة هذا المسار، معبّرًا عنها بالمتر (القيمة) وك نص. تستخدِم القيمة النصية نظام الوحدات المحدّد باستخدام مَعلمة الوحدة في الطلب الأصلي، أو منطقة المصدر. لمزيد من المعلومات، يمكنك الاطّلاع على TextValueObject. |
|
اختياري | TextValueObject |
تمثّل هذه السمة المدة الزمنية المستغرقة في قطع هذه المسافة، ويتم التعبير عنها بالثواني (حقل القيمة) وكوصف نصي. يتم توفير التمثيل النصي وفقًا لمعلَمة اللغة الخاصة بطلب البحث. لمزيد من المعلومات، يمكنك الاطّلاع على TextValueObject. |
|
اختياري | TextValueObject |
هي المدة الزمنية التي يستغرقها التنقّل في هذا المسار، استنادًا إلى أحوال حركة المرور الحالية والسابقة. راجِع مَعلمة الطلب
لمزيد من المعلومات، يمكنك الاطّلاع على TextValueObject. |
|
اختياري | الأجرة |
في حال توفّره، يحتوي على إجمالي الأجرة (أي إجمالي تكاليف التذكرة) على هذا المسار. لا يتم عرض هذه السمة إلا لطلبات النقل العام، وفقط لمزوّدي خدمات النقل العام الذين تتوفّر لديهم معلومات عن الأسعار. يُرجى الاطّلاع على الأجرة لمزيد من المعلومات. |
السعر
تمثّل هذه السمة إجمالي الأجرة للمسار.
{
"currency" : "USD",
"value" : 6,
"text" : "$6.00"
}
| الحقل | مطلوب | النوع | الوصف |
|---|---|---|---|
|
مطلوب | سلسلة |
تمثّل هذه السمة رمز العملة بتنسيق ISO 4217 الذي يشير إلى العملة التي يتم التعبير عن المبلغ بها. |
|
مطلوب | سلسلة |
مبلغ الأجرة الإجمالي، منسَّقًا باللغة المطلوبة |
|
مطلوب | الرقم |
إجمالي مبلغ الأجرة بالعملة المحدّدة |
DistanceMatrixElementStatus
- يشير
OKإلى أنّ الردّ يحتوي على نتيجة صالحة. -
يشير الرمز
NOT_FOUNDإلى أنّه تعذّر الترميز الجغرافي لنقطة الانطلاق و/أو الوجهة في عملية الربط هذه. -
يشير الرمز
ZERO_RESULTSإلى أنّه لم يتم العثور على أي مسار بين نقطة الانطلاق والوجهة. -
يشير الرمز
MAX_ROUTE_LENGTH_EXCEEDEDإلى أنّ المسار المطلوب طويل جدًا ولا يمكن معالجته.
TextValueObject
عنصر يحتوي على قيمة رقمية وتمثيل نصي منسَّق لها.
| الحقل | مطلوب | النوع | الوصف |
|---|---|---|---|
|
مطلوب | سلسلة |
قيمة السلسلة |
|
مطلوب | الرقم |
قيمة رقمية |