لاحتساب مسار، يجب تحديد الموقع الجغرافي لنقطة البداية ونقطة النهاية على الأقل. يمكنك تحديد هذه المواقع الجغرافية كنقاط توقّف على المسار.
بالإضافة إلى نقطتَي البداية والوجهة، يمكنك تحديد أنواع مختلفة من نقاط المرور وكيفية التعامل معها في مسار. لمزيد من المعلومات والأمثلة، راجِع المواضيع التالية:
- تحديد وجهة المركبة وجانب الطريق
- تحديد نقاط توقّف وسيطة
- تحديد محطة على طول مسار
- ضبط نقطة ليمرّ بها المسار
- تحسين ترتيب المحطات على مسارك
تحديد المواقع الجغرافية لمسار
يمكنك تمثيل موقع جغرافي من خلال إنشاء كائن نقطة طريق (REST) أو نقطة طريق (gRPC). في تعريف نقطة الطريق، يمكنك تحديد موقع جغرافي بأي من الطرق التالية:
- معرّف المكان
- إحداثيات خطوط العرض/الطول
- سلسلة العنوان ("شيكاغو، إلينوي" أو "داروين، الإقليم الشمالي، أستراليا")
- الرمز المميّز لنقطة التنقّل
- رمز Plus
يمكنك تحديد المواقع الجغرافية لجميع نقاط الطريق في الطلب بالطريقة نفسها، أو يمكنك الجمع بينها. على سبيل المثال، يمكنك استخدام إحداثيات خط العرض/خط الطول لنقطة الطريق الأصلية واستخدام معرّف مكان لنقطة الطريق الخاصة بالوجهة.
لتحقيق الكفاءة والدقة، استخدِم أرقام تعريف الأماكن بدلاً من إحداثيات خطوط الطول والعرض أو سلاسل العناوين. تكون معرّفات الأماكن واضحة بشكل فريد وتوفّر مزايا الترميز الجغرافي للتوجيه، مثل نقاط الوصول ومتغيرات حركة المرور. تساعد هذه الطريقة في تجنُّب الحالات التالية التي يمكن أن تنشأ عن الطرق الأخرى لتحديد الموقع الجغرافي:
- قد يؤدي استخدام إحداثيات خطوط الطول والعرض إلى تحديد الموقع الجغرافي على الطريق الأقرب إلى هذه الإحداثيات، وقد لا يكون هذا الطريق نقطة وصول إلى المكان المحدّد، أو حتى طريقًا يؤدي إلى الوجهة بسرعة أو بأمان.
- يجب أولاً ترميز السلاسل الخاصة بالعناوين جغرافيًا باستخدام واجهة Routes API لتحويلها إلى إحداثيات خطوط الطول والعرض قبل أن تتمكّن من احتساب مسار. يمكن أن تؤثّر هذه الإحالة الناجحة في الأداء.
تحديد موقع جغرافي كمعرّف مكان
يمكنك استخدام رقم تعريف المكان لتحديد الموقع الجغرافي لنقطة طريق. بما أنّ إحداثيات خطوط الطول والعرض يتم ضبطها على الطرق، قد تجد أنّ معرّف المكان يقدّم نتائج أفضل في بعض الحالات.
استرداد معرّفات الأماكن من Geocoding API وPlaces API (بما في ذلك خدمة الإكمال التلقائي للأماكن) لمزيد من المعلومات حول معرّفات الأماكن، راجِع نظرة عامة على معرّفات الأماكن.
يستخدم المثال التالي السمة placeId لتمرير رقم تعريف مكان لكل من origin وdestination:
{ "origin":{ "placeId": "ChIJayOTViHY5okRRoq2kGnGg8o" }, "destination":{ "placeId": "ChIJTYKK2G3X5okRgP7BZvPQ2FU" }, ... }
تحديد موقع جغرافي كإحداثيات خط العرض وخط الطول
لتحديد الموقع الجغرافي في نقطة طريق، حدِّد الموقع الجغرافي (REST) أو الموقع الجغرافي(gRPC) باستخدام إحداثيات خطوط الطول والعرض.
على سبيل المثال، حدِّد نقطة طريق للمسار origin وdestination
باستخدام الإحداثيات latitude وlongitude:
{ "origin":{ "location":{ "latLng":{ "latitude": 37.419734, "longitude": -122.0827784 } } }, "destination":{ "location":{ "latLng":{ "latitude": 37.417670, "longitude": -122.079595 } } }, ... }
تحديد موقع جغرافي كسلسلة عناوين
سلاسل العناوين هي عناوين حرفية ممثّلة بسلسلة (مثل "1600 Amphitheatre Parkway, Mountain View, CA"). الترميز الجغرافي هو عملية تحويل سلسلة عناوين إلى إحداثيات خطوط العرض والطول (مثل خط العرض 37.423021 وخط الطول -122.083739).
عندما تمرّر سلسلة عناوين كموقع جغرافي لنقطة طريق، تحوّل واجهة Routes API السلسلة داخليًا إلى رمز جغرافي لتحويلها إلى إحداثيات خطوط الطول والعرض.
على سبيل المثال، لحساب مسار، عليك تحديد نقطة طريق للمسار origin وdestination باستخدام سلاسل العناوين:
{ "origin":{ "address": "1600 Amphitheatre Parkway, Mountain View, CA" }, "destination":{ "address": "450 Serra Mall, Stanford, CA 94305, USA" }, ... }
في هذا المثال، تحوّل واجهة Routes API كلا العنوانين إلى إحداثيات خطوط العرض والطول.
إذا كانت قيمة العنوان غامضة، قد تستدعي Routes API عملية بحث لتوضيح العنوان من بين العناوين المشابهة. على سبيل المثال، يمكن أن تكون "شارع 1" قيمة كاملة أو جزئية لـ "شارع 1 شمال شرق" أو "شارع 1 جنوب شرق". قد تختلف هذه النتيجة عن النتيجة التي تعرضها Geocoding API. يمكنك تجنُّب حالات سوء الفهم المحتملة باستخدام معرّفات الأماكن.
تحديد المنطقة الخاصة بالعنوان
إذا مرّرت سلسلة عنوان غير مكتملة كموقع جغرافي لنقطة طريق، قد تستخدم واجهة برمجة التطبيقات إحداثيات خطوط الطول والعرض المرمَّزة جغرافيًا بشكل غير صحيح. على سبيل المثال، إذا أرسلت طلبًا يحدّد "طليطلة" كنقطة انطلاق و "مدريد" كوجهة لمسار قيادة:
{ "origin":{ "address": "Toledo" }, "destination":{ "address": "Madrid" }, "travelMode": "DRIVE" }
في هذا المثال، يتم تفسير "طليطلة" على أنّها مدينة في ولاية أوهايو في الولايات المتحدة، وليس في إسبانيا. لذلك، يعرض الطلب مصفوفة فارغة، ما يعني عدم توفّر أي مسارات:
{ [] }
يمكنك ضبط واجهة برمجة التطبيقات لعرض نتائج متحيزة لمنطقة معيّنة من خلال تضمين المَعلمة regionCode. تحدّد هذه المَعلمة رمز المنطقة كقيمة مؤلّفة من حرفين (نطاق المستوى الأعلى). معظم رموز نطاقات المستوى الأعلى لرمز البلد تتطابق مع رموز ISO 3166-1، مع بعض الاستثناءات البارزة. على سبيل المثال، رمز ccTLD الخاص بالمملكة المتحدة هو "uk" (.co.uk)، بينما رمز ISO 3166-1 الخاص بها هو "gb" (وهو يشير تقنيًا إلى كيان "المملكة المتحدة لبريطانيا العظمى وأيرلندا الشمالية").
يؤدي طلب الحصول على اتجاهات من "توليدو" إلى "مدريد" يتضمّن المَعلمة regionCode إلى عرض نتائج مناسبة لأنّه يتم تفسير "توليدو" على أنّه مدينة في إسبانيا:
{ "origin":{ "address": "Toledo" }, "destination":{ "address": "Madrid" }, "travelMode": "DRIVE", "regionCode": "es" }
تحتوي الاستجابة الآن على المسار المحسوب من توليدو، إسبانيا إلى مدريد، إسبانيا:
{ "routes": [ { "distanceMeters": 75330, "duration": "4137s", ... } ] }
تحديد موقع جغرافي كرمز مميّز لنقطة التنقّل
الرمز المميز لنقطة التنقّل هو سلسلة ترمّز موقعًا جغرافيًا وسياقًا إضافيًا للمسار. يمكن أن توفّر رموز نقاط التنقّل توجيهًا دقيقًا إلى نقاط وصول معيّنة بالقرب من المداخل أو أرصفة التحميل أو مناطق الاستلام المحدّدة. ويكون ذلك مفيدًا في حالات مثل توصيل الطعام أو مشاركة الرحلات، حيث قد تكون نقطة الاستلام أو التسليم غير واضحة.
يمكنك الحصول على رمز مميّز لنقطة التنقّل من خلال استدعاء طريقة Destinations في Geocoding API.
لتحديد رمز مميز لنقطة التنقّل:
- احصل على
navigationPointTokenمن طريقة `SearchDestinations` في Geocoding API. اطّلِع على مستندات Geocoding API للحصول على مزيد من المعلومات. - أنشئ نقطة طريق من خلال تمرير
navigationPointToken.
يستخدم المثال التالي السمة navigation_point_token لتمرير رمز مميز لنقطة التنقّل لكل من origin وdestination:
{ "origin":{ "navigation_point_token": "ENCODED_NAVIGATION_POINT_TOKEN_FOR_ORIGIN" }, "destination":{ "navigation_point_token": "ENCODED_NAVIGATION_POINT_TOKEN_FOR_DESTINATION" }, ... }
تحديد موقع جغرافي كرمز Plus Codes
لا يتوفّر لدى العديد من الأشخاص عنوان دقيق، ما قد يصعّب عليهم تلقّي عمليات التسليم. أو قد يفضّل الأشخاص الذين لديهم عنوان قبول عمليات التسليم في مواقع جغرافية أكثر تحديدًا، مثل مدخل خلفي أو رصيف تحميل.
رموز Plus Codes هي بمثابة عناوين الشوارع، لكنها مخصّصة للأشخاص أو الأماكن التي ليس لها عنوان. وبدلاً من العناوين التي تحتوي على أسماء الشوارع وأرقامها، تستند رموز المواقع المفتوحة إلى إحداثيات خطوط الطول والعرض وتظهر كأرقام وحروف.
طوّرت Google رموز Plus Codes لتوفير مزايا العناوين للجميع. رمز الموقع المفتوح هو مرجع مشفّر للموقع الجغرافي، مشتق من إحداثيات خطوط الطول والعرض، ويمثّل مساحة تبلغ 1/8000 من الدرجة في 1/8000 من الدرجة (حوالي 14 مترًا × 14 مترًا عند خط الاستواء) أو أصغر. يمكنك استخدام Plus Codes كبديل لعناوين الشوارع في الأماكن التي لا تتوفّر فيها أو التي لا تحمل فيها المباني أرقامًا أو لا تحمل الشوارع أسماء.
يجب تنسيق Plus Codes كرمز عالمي أو رمز مركّب:
- يتألف الرمز العالمي من رمز منطقة مكوّن من 4 أحرف ورمز محلي مكوّن من 6 أحرف أو أكثر.
على سبيل المثال، بالنسبة إلى العنوان "1600 Amphitheatre Parkway, Mountain View, CA"، يكون الرمز العالمي هو "849V" والرمز المحلي هو "CWC8+R9". بعد ذلك، يمكنك استخدام رمز الموقع المفتوح المكوّن من 10 أحرف بالكامل لتحديد قيمة الموقع الجغرافي على النحو التالي: "849VCWC8+R9".
- يتألف الرمز المركّب من رمز محلي يتضمّن 6 أحرف أو أكثر، بالإضافة إلى موقع جغرافي محدّد.
على سبيل المثال، العنوان "450 Serra Mall, Stanford, CA 94305, USA" يتضمّن رمزًا محليًا هو "CRHJ+C3". بالنسبة إلى العنوان المركّب، ادمج الرمز المحلي مع جزء العنوان الذي يتضمّن المدينة والولاية والرمز البريدي والبلد بالشكل "CRHJ+C3 Stanford, CA 94305, USA".
على سبيل المثال، يمكنك احتساب مسار من خلال تحديد نقطة طريق للمسار
originوdestinationباستخدام رموز Plus Codes:{ "origin":{ "address": "849VCWC8+R9" }, "destination":{ "address": "CRHJ+C3 Stanford, CA 94305, USA" }, "travelMode": "DRIVE" }
تتوافق Plus Codes مع واجهات برمجة التطبيقات في "منصة خرائط Google"، بما في ذلك الإكمال التلقائي للأماكن و تفاصيل المكان و واجهة برمجة تطبيقات الاتجاهات (الإصدار القديم) و Geocoding API. على سبيل المثال، يمكنك استخدام Geocoding API لإجراء ترميز جغرافي عكسي لموقع جغرافي محدّد بإحداثيات خطوط الطول والعرض من أجل تحديد Plus Code الخاص بالموقع الجغرافي.