تحديد المواقع الجغرافية لمسار معيّن

لحساب مسار، يجب عليك على الأقل تحديد مواقع منشأ المسار ووجهة المسار على الأقل. ويمكنك تحديد هذه المواقع باعتبارها نقاط طريق على المسار.

بالإضافة إلى نقطة الانطلاق والوجهة، يمكنك تحديد أنواع مختلفة من نقاط الطرق وكيفية التعامل مع نقاط الطرق لمسار. لمزيد من المعلومات والأمثلة، راجع هذه المواضيع:

تحديد مواقع لمسار

تمثِّل موقعًا جغرافيًا من خلال إنشاء كائن Waypoint (REST) أو Waypoint (gRPC). في تعريف نقطة الطريق، يمكنك تحديد موقع بأي طريقة من الطرق التالية:

يمكنك تحديد مواقع لجميع نقاط الطرق في الطلب بالطريقة نفسها، أو يمكنك مزجها. على سبيل المثال، يمكنك استخدام إحداثيات خطوط الطول والعرض لنقطة الطريق المصدر واستخدام معرف مكان لنقطة الطريق الوجهة.

لتحقيق الكفاءة والدقة، استخدِم معرّفات الأماكن بدلاً من إحداثيات خطوط الطول/العرض أو سلاسل العناوين. معرّفات الأماكن واضحة وفريدة وتوفر مزايا الترميز الجغرافي للتوجيه مثل نقاط الوصول ومتغيرات حركة المرور. إنها تساعد في تجنب المواقف التالية التي يمكن أن تنتج عن طرق أخرى لتحديد الموقع:

  • ويمكن أن يؤدي استخدام إحداثيات خطوط الطول والعرض إلى تثبيت الموقع الجغرافي على الطريق الأقرب إلى تلك الإحداثيات، وقد لا تكون نقطة وصول إلى الموقع أو حتى طريقًا يؤدي بسرعة أو أمان إلى الوجهة.
  • يجب أولاً ترميز سلاسل العناوين جغرافيًا باستخدام Routes 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 عملية بحث للتمييز بين العناوين المشابهة. على سبيل المثال، يمكن أن تكون "الشارع الأول" قيمة كاملة أو قيمة جزئية لـ "الشارع الأول شرق" أو "شارع عباس العقاد". وقد تختلف هذه النتيجة عن تلك التي تعرضها واجهة برمجة تطبيقات الترميز الجغرافي. يمكنك تجنب التفسيرات الخاطئة المحتملة باستخدام معرّفات الأماكن.

تحديد المنطقة للعنوان

في حال تمرير سلسلة عنوان غير مكتملة كموقع لنقطة طريق، قد تستخدم واجهة برمجة التطبيقات إحداثيات خط العرض/خط الطول المرمّزة جغرافيًا. على سبيل المثال، يمكنك تقديم طلب يحدد "Toledo" كالأصل و "مدريد" كوجهة لمسار القيادة:

{
  "origin":{
    "address": "Toledo"
  },
  "destination":{
    "address": "Madrid"
  },
  "travelMode": "DRIVE"
}

في هذا المثال، يتم تفسير "توليدو" على أنها مدينة في ولاية أوهايو في الولايات المتحدة، وليس في إسبانيا. لذلك، يعرض الطلب صفيفًا فارغًا، مما يعني عدم وجود مسارات:

{
  []
}

يمكنك ضبط واجهة برمجة التطبيقات لعرض النتائج المتحيّزة لمنطقة معيّنة عن طريق تضمين المَعلمة regionCode. تحدّد هذه المَعلمة رمز المنطقة على أنّه ccTLD ("نطاق المستوى الأعلى") الذي يتكوّن من حرفَين. تتطابق معظم رموز ccTLD مع رموز ISO 3166-1، مع بعض الاستثناءات الملحوظة. على سبيل المثال، نطاق المستوى الأعلى الذي يتم ترميزه حسب البلد (ccTLD) في المملكة المتحدة هو "uk" (.co.uk) في حين أن رمز ISO 3166-1 هو "gb" (من الناحية الفنية لكيان "المملكة المتحدة لبريطانيا العظمى وأيرلندا الشمالية").

يؤدي طلب التوجيهات الخاص بـ "Toledo" إلى "مدريد" الذي يتضمن المعلمة regionCode إلى عرض نتائج مناسبة لأن "Toledo" يتم تفسيرها على أنها مدينة في إسبانيا:

{
  "origin":{
    "address": "Toledo"
  },
  "destination":{
    "address": "Madrid"
  },
  "travelMode": "DRIVE",
  "regionCode": "es"
}

يحتوي الرد الآن على المسار المحسوب من توليدو، إسبانيا إلى مدريد، إسبانيا:

{
  "routes": [
    {
      "distanceMeters": 75330,
      "duration": "4137s",
      ...
    }
  ]
}

تحديد موقع جغرافي كرمز Plus Codes

الكثير من الأشخاص ليس لديهم عنوان دقيق، مما قد يجعل من الصعب عليهم استلام التوصيل. أو قد يفضل الأشخاص الذين لديهم عنوان قبول التسليم في مواقع أكثر تحديدًا، مثل المدخل الخلفي أو رصيف التحميل.

Plus Codes هي مثل عناوين الشوارع للأشخاص أو الأماكن التي ليس لها عنوان فعلي. بدلاً من العناوين التي تحتوي على أسماء الشوارع وأرقامها، تستند رموز Plus Codes إلى إحداثيات خطوط الطول/العرض، ويتم عرضها كأرقام وأحرف.

طوّرت Google Plus Codes لإتاحة العناوين للجميع وكل شيء. رمز Plus Codes هو مرجع موقع جغرافي مشفّر، مشتق من إحداثيات خط العرض/خط الطول ويمثّل مساحة: 1/8, 000 درجة من 1/8, 000 درجة (حوالي 14 متر × 14 متر على خط الاستواء) أو أقل. يمكنك استخدام Plus Codes كبديل لعناوين الشوارع في الأماكن التي لا توجد فيها أو التي لا تكون مرقّمة بها المباني أو لا تتم تسمية الشوارع فيها.

يجب تنسيق Plus Codes كرمز عام أو رمز مركّب:

  • يتكوّن الرمز العام من رمز منطقة مكوّن من 4 أحرف و6 أحرف أو أكثر من رمز محلي.

    على سبيل المثال، بالنسبة إلى العنوان "1600 Amphitheatre Parkway, Mountain View, CA"، يكون الرمز العالمي "849V" والرمز المحلي هو "CWC8+R9". بعد ذلك، يمكنك استخدام رمز Plus Codes بالكامل والمؤلّف من 10 أحرف لتحديد قيمة الموقع الجغرافي على النحو التالي "849VCWC8+R9".

  • ويتكوّن الرمز المركّب من 6 أحرف أو أكثر رمز محلي مدمج مع موقع جغرافي صريح.

    على سبيل المثال، يحتوي العنوان "450 Serra Shopping, 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 Maps Platform API، بما في ذلك الإكمال التلقائي للأماكن وتفاصيل المكان وواجهة برمجة التطبيقات للاتجاهات وواجهة برمجة التطبيقات للترميز الجغرافي. على سبيل المثال، يمكنك استخدام واجهة برمجة تطبيقات الترميز الجغرافي لعكس الترميز الجغرافي لموقع محدّد بإحداثيات خطوط الطول والعرض، وذلك لتحديد رمز Plus Codes للموقع.