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

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

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

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

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

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

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

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

ضبط المنطقة الخاصة بالعنوان

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

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

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

{
  []
}

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

يؤدي طلب الاتجاهات من "Toledo" إلى "Madrid"، والذي يتضمّن المَعلمة 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/8000 من الدرجة مضروبة في 1/8000 من الدرجة (حوالي 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 Manford, 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"، بما في ذلك الإكمال التلقائي للأماكن وتفاصيل المكان وDirections API وGeocoding API. على سبيل المثال، يمكنك استخدام واجهة برمجة التطبيقات Geocoding API لعكس الترميز الجغرافي لموقع جغرافي يتم تحديده بواسطة إحداثيات خط العرض/الطول لتحديد Plus Codes للموقع الجغرافي.