Method: geocode.destinations.searchDestinations

تُجري هذه الطريقة عملية بحث عن الوجهات وتعرض قائمة بالوجهات.

طلب HTTP

POST https://geocode.googleapis.com/v4/geocode/destinations

يستخدِم عنوان URL بنية تحويل الترميز إلى gRPC.

نص الطلب

يتضمن نص الطلب بيانات بالبنية التالية:

تمثيل JSON
{
  "travelModes": [
    enum (NavigationPoint.TravelMode)
  ],
  "languageCode": string,
  "regionCode": string,

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "place": string,
  "addressQuery": {
    object (SearchDestinationsRequest.AddressQuery)
  },
  "locationQuery": {
    object (SearchDestinationsRequest.LocationQuery)
  }
  // End of mutually exclusive fields.
}
الحقول
travelModes[]

enum (NavigationPoint.TravelMode)

اختيارية: تمثّل هذه السمة أوضاع السفر التي تتم فلترة نقاط التنقّل وفقًا لها. يؤثر ذلك في حقل navigationPoints الذي يتم عرضه في الردّ. وفي حال تركها فارغة، يتم عرض نقاط التنقّل لجميع وسائل النقل.

languageCode

string

اختيارية: اللغة التي يجب عرض النتائج بها

regionCode

string

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

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

يتم إنشاء الوجهات حول طلب البحث الأساسي المحدّد.

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

place

string

اسم المورد الخاص بمكان معيّن، بتنسيق places/{placeId}.

addressQuery

object (SearchDestinationsRequest.AddressQuery)

عنوان شارع

locationQuery

object (SearchDestinationsRequest.LocationQuery)

موقع جغرافي دقيق

نهاية الحقول التي يستبعد كلّ منها الآخر

نص الاستجابة

رسالة الردّ على DestinationService.SearchDestinations.

إذا كانت الاستجابة ناجحة، سيحتوي نص الاستجابة على بيانات بالبنية التالية:

تمثيل JSON
{
  "destinations": [
    {
      object (Destination)
    }
  ]
}
الحقول
destinations[]

object (Destination)

قائمة بالوجهات

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

نطاقات الأذونات

يتطلب أحد نطاقات OAuth التالية:

  • https://www.googleapis.com/auth/cloud-platform
  • https://www.googleapis.com/auth/maps-platform.geocode
  • https://www.googleapis.com/auth/maps-platform.destinations

SearchDestinationsRequest.AddressQuery

عنوان الشارع الذي تريد البحث عنه يجب تحديد العناوين وفقًا للتنسيق الذي تستخدمه خدمة البريد الوطنية في البلد المعني.

تمثيل JSON
{

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "address": {
    object (PostalAddress)
  },
  "addressQuery": string
  // End of mutually exclusive fields.
}
الحقول
طلب البحث عن العنوان في ما يلي قائمة بالحقول التي يستبعد بعضها بعضًا. سيتم ضبط حقل واحد على الأكثر في الرد:
address

object (PostalAddress)

عنوان شارع بتنسيق عنوان بريدي

addressQuery

string

عنوان شارع منسَّق كسطر واحد

نهاية الحقول التي يستبعد كلّ منها الآخر

SearchDestinationsRequest.LocationQuery

طلب بحث عن موقع جغرافي لتحديد وجهة أساسية قريبة

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

تمثيل JSON
{
  "placeFilter": {
    object (SearchDestinationsRequest.LocationQuery.PlaceFilter)
  },

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "location": {
    object (LatLng)
  }
  // End of mutually exclusive fields.
}
الحقول
placeFilter

object (SearchDestinationsRequest.LocationQuery.PlaceFilter)

اختيارية: الفلاتر التي سيتم تطبيقها على الوجهات المرشّحة

طلب البحث عن الموقع الجغرافي في ما يلي قائمة بالحقول التي يستبعد بعضها بعضًا. سيتم ضبط حقل واحد على الأكثر في الرد:
location

object (LatLng)

موقع جغرافي دقيق يحدّده خطّا العرض والطول

نهاية الحقول التي يستبعد كلّ منها الآخر

SearchDestinationsRequest.LocationQuery.PlaceFilter

الفلاتر التي سيتم تطبيقها على الوجهات المرشّحة

تمثيل JSON
{
  "structureType": enum (PlaceView.StructureType),
  "addressability": enum (SearchDestinationsRequest.LocationQuery.PlaceFilter.Addressability)
}
الحقول
structureType

enum (PlaceView.StructureType)

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

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

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

addressability

enum (SearchDestinationsRequest.LocationQuery.PlaceFilter.Addressability)

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

PlaceView.StructureType

نوع البنية التي يمثّلها هذا المكان

عمليات التعداد
STRUCTURE_TYPE_UNSPECIFIED غير مستخدَم
POINT موقع جغرافي محدّد بنقطة
SECTION قسم فرعي من مبنى
BUILDING مبنى
GROUNDS منطقة كبيرة تحتوي عادةً على مبانٍ متعددة، مثل حرم جامعي أو مجمّع سكني أو مركز تسوّق.

SearchDestinationsRequest.LocationQuery.PlaceFilter.Addressability

تحدّد هذه السمة خيارات فلترة إمكانية الاستهداف. قد تتم إضافة قيم جديدة في المستقبل.

عمليات التعداد
ADDRESSABILITY_UNSPECIFIED في حال عدم تحديدها، ستختار الخدمة قيمة تلقائية مناسبة.
ANY لا تُعدّ إمكانية الاستهداف معيارًا للفلترة. يتم عرض الوجهات بغض النظر عن إمكانية الوصول إليها.
PRIMARY ستتضمّن جميع الوجهات التي يتم عرضها مكانًا أساسيًا يحمل عنوانًا أو اسمًا على مستوى الشارع.
WEAK ستتضمّن جميع الوجهات التي يتم عرضها إما مكانًا أساسيًا أو وجهة فرعية مع عنوان أو اسم على مستوى الشارع.

الوجهة

وجهة ويشمل ذلك المكان الأساسي والأماكن ذات الصلة والمداخل ونقاط التنقّل.

تمثيل JSON
{
  "primary": {
    object (PlaceView)
  },
  "containingPlaces": [
    {
      object (PlaceView)
    }
  ],
  "subDestinations": [
    {
      object (PlaceView)
    }
  ],
  "landmarks": [
    {
      object (Landmark)
    }
  ],
  "entrances": [
    {
      object (Entrance)
    }
  ],
  "navigationPoints": [
    {
      object (NavigationPoint)
    }
  ]
}
الحقول
primary

object (PlaceView)

المكان الأساسي الذي يحدّده primary_query في الطلب

containingPlaces[]

object (PlaceView)

الأماكن الأقل دقة التي يتضمّنها المكان الأساسي على سبيل المثال، المجمّع السكني الذي يضم هذا المبنى.

subDestinations[]

object (PlaceView)

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

ملاحظة: مقارنةً بالوجهة الفرعية SubDestination التي تعرضها واجهة برمجة التطبيقات Places API، تكون قائمة الوجهات الفرعية هذه أكثر شمولاً، وتحتوي كل وجهة فرعية على مزيد من المعلومات.

landmarks[]

object (Landmark)

المعالم التي يمكن استخدامها للإشارة إلى مكان الوجهة أو المساعدة في الوصول إليها

entrances[]

object (Entrance)

مداخل هذه الوجهة

navigationPoints[]

object (NavigationPoint)

نقاط التنقّل لهذه الوجهة

PlaceView

يمثّل عرضًا لمكان في Places API. وتوفّر أيضًا معلومات إضافية خاصة بالوجهات، مثل نوع البنية والمضلّع المعروض.

في بعض الحالات، قد يختلف PlaceView الذي يحمل رقم تعريف المكان نفسه عمّا تعرضه Places API للحقلَين types وdisplayName.

تمثيل JSON
{
  "place": string,
  "placeId": string,
  "displayName": {
    object (LocalizedText)
  },
  "primaryType": string,
  "types": [
    string
  ],
  "formattedAddress": string,
  "postalAddress": {
    object (PostalAddress)
  },
  "structureType": enum (PlaceView.StructureType),
  "location": {
    object (LatLng)
  },
  "displayPolygon": {
    object
  },
  "addressComponents": [
    {
      object (PlaceView.AddressComponent)
    }
  ]
}
الحقول
place

string

اسم مورد هذا المكان، بتنسيق places/{placeId}. يمكن استخدامها للبحث عن المكان.

placeId

string

المعرّف الفريد لمكان معيّن

displayName

object (LocalizedText)

وصف المكان الذي يمكن لشخص عادي قراءته على سبيل المثال، "البوابة ب" أو "ماكدونالدز"

primaryType

string

نوع المكان الأساسي لهذا المكان يمكنك الاطّلاع على https://developers.google.com/maps/documentation/places/web-service/place-types للحصول على قائمة بالقيم المحتملة.

ملاحظة: لا تتم تعبئة هذا الحقل دائمًا. يُرجى الاستعداد لاستخدام حقل types في هذه الحالات.

types[]

string

جميع أنواع الأماكن المرتبطة بهذا المكان يمكنك الاطّلاع على https://developers.google.com/maps/documentation/places/web-service/place-types للحصول على قائمة بالقيم المحتملة.

formattedAddress

string

عنوان من سطر واحد

postalAddress

object (PostalAddress)

العنوان المنظَّم

structureType

enum (PlaceView.StructureType)

نوع البنية المقابلة لهذا المكان

location

object (LatLng)

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

displayPolygon

object (Struct format)

تمثّل هذه السمة المخطط التفصيلي للمضلّع الخاص بالمكان بتنسيق GeoJSON، باستخدام تنسيق RFC 7946‏: https://datatracker.ietf.org/doc/html/rfc7946#section-3.1.6.

ملاحظة: يتيح تنسيق RFC 7946 استخدام MultiPolygons، لذا يمكن أن يمثّل عنصر displayPolygon واحد مضلّعات متعدّدة.

addressComponents[]

object (PlaceView.AddressComponent)

مكوّنات متكرّرة لكل مستوى منطقة

PlaceView.AddressComponent

المكوّنات المنظَّمة التي تشكّل العنوان المنسَّق، إذا كانت هذه المعلومات متاحة

تمثيل JSON
{
  "longText": string,
  "shortText": string,
  "types": [
    string
  ],
  "languageCode": string
}
الحقول
longText

string

الوصف النصي الكامل أو اسم مكوّن العنوان على سبيل المثال، قد يكون الاسم الطويل لمكوّن العنوان الخاص ببلد أستراليا هو "أستراليا".

shortText

string

اسم نصي مختصر لمكوّن العنوان، إذا كان متاحًا. على سبيل المثال، قد يكون الاسم المختصر لمكوّن العنوان الخاص ببلد أستراليا هو "AU".

types[]

string

مصفوفة تشير إلى أنواع مكوّن العنوان.

يتم استخلاص هذه القيم من جدول أنواع العناوين وأنواع مكوّنات العناوين الذي تستخدمه Places API: https://developers.google.com/maps/documentation/places/web-service/place-types#address-types

languageCode

string

اللغة المستخدَمة لتنسيق هذا المكوّن، بتنسيق CLDR

مَعلم

تُستخدَم المعالم للإشارة إلى مكان الوجهة أو المساعدة في الوصول إليها.

تمثيل JSON
{
  "relationalDescription": {
    object (LocalizedText)
  },
  "tags": [
    enum (Landmark.Tag)
  ],
  "straightLineDistanceMeters": number,
  "travelDistanceMeters": number,

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "place": {
    object (PlaceView)
  }
  // End of mutually exclusive fields.
}
الحقول
relationalDescription

object (LocalizedText)

وصف يمكن لشخص عادي قراءته لكيفية ارتباط الوجهة بالمعلم على سبيل المثال: "بالقرب من مبنى إمباير ستيت" أو "مقابل البيت الأبيض".

tags[]

enum (Landmark.Tag)

علامات تصف كيفية استخدام المعلم في سياق الوجهة.

straightLineDistanceMeters

number

للعرض فقط. المسافة في خط مستقيم من هذا المَعلم إلى الوجهة بالأمتار

travelDistanceMeters

number

للعرض فقط. المسافة سيرًا على الأقدام من هذا المعلم إلى الوجهة بالأمتار

المَعلم في ما يلي قائمة بالحقول التي يستبعد بعضها بعضًا. سيتم ضبط حقل واحد على الأكثر في الرد:
place

object (PlaceView)

المكان الذي يمثّل هذا المعلم

نهاية الحقول التي يستبعد كلّ منها الآخر

Landmark.Tag

قائمة بجميع العلامات المحتملة التي تصف كيفية استخدام مَعلم في سياق وجهة معيّنة

إذا كان العنوان يحتوي على علامتَي ADDRESS وARRIVAL، يعني ذلك أنّ المَعلم بارز محليًا وقريب من الوجهة.

عمليات التعداد
TAG_UNSPECIFIED غير مستخدَم
ADDRESS مكان بارز محليًا يمكن استخدامه لتحديد الموقع الجغرافي العام للوجهة عادةً ما تكون على بُعد بضع مئات من الأمتار من الوجهة. وتشبه هذه المعالم تلك التي تعرضها ميزة "أوصاف العناوين" في Geocoding API: https://developers.google.com/maps/documentation/geocoding/address-descriptors/requests-address-descriptors.
ARRIVAL مكان يمكن استخدامه للمساعدة في الوصول إلى الوجهة تكون مفيدة للتنقّل عندما تكون قريبًا من الوجهة. على سبيل المثال، قد يكون هذا المعلم مكانًا يقع على الجانب الآخر من الشارع مقابل الوجهة. عادةً ما يكون المَعلم الذي يحمل هذه العلامة أقرب إلى الوجهة من المعالم التي تحمل العلامة ADDRESS.

المدخل

المدخل هو زوج واحد من إحداثيات خطوط العرض والطول يحدّد الموقع الجغرافي لنقطة دخول وخروج من مكان معيّن.

تمثيل JSON
{
  "displayName": {
    object (LocalizedText)
  },
  "location": {
    object (LatLng)
  },
  "tags": [
    enum (Entrance.Tag)
  ],
  "place": string
}
الحقول
displayName

object (LocalizedText)

اسم يمكن لشخص عادي قراءته، مثل "البوابة ب" أو "المدخل الجنوبي" أو "مدخل الجادة الخامسة".

location

object (LatLng)

موقع المدخل

tags[]

enum (Entrance.Tag)

قائمة بالعلامات التي تصف المدخل

place

string

تمثّل هذه السمة المبنى الذي يقع فيه هذا المدخل، بتنسيق places/{placeId}.

Entrance.Tag

الخصائص التي تصف المدخل

عمليات التعداد
TAG_UNSPECIFIED غير مستخدَم
PREFERRED

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

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

إذا كان المكان الأساسي هو مبنى، ستكون مداخل PREFERRED هي تلك التي تؤدي إلى الجزء "الرئيسي" من المبنى. على سبيل المثال، في مركز تسوّق، ستكون مداخل PREFERRED هي تلك التي تتيح الوصول إلى منطقة الردهة الرئيسية، ولكن إذا كان المدخل يتيح الوصول فقط إلى متجر على جانب المبنى، فلن يكون مدخل PREFERRED.

ملاحظة: قد لا يوفّر مدخل PREFERRED إمكانية الوصول إلى المكان الأساسي، وقد يوفّر مدخل غير تابع لـ PREFERRED إمكانية الوصول إلى المكان الأساسي.