البحث في الأماكن القريبة (ميزة جديدة)

اختيار النظام الأساسي: Android iOS JavaScript Web Service
مطوّرو التطبيقات المقيمون في المنطقة الاقتصادية الأوروبية (EEA):

مقدمة

يأخذ طلب بحث في الجوار (الجديد) نوعًا واحدًا أو أكثر من أنواع الأماكن، ويعرض قائمة بالأماكن المطابِقة ضمن المنطقة المحدّدة. يجب تحديد قناع حقل يحدّد نوعًا واحدًا أو أكثر من أنواع البيانات. لا يتيح "بحث في الجوار (الجديد)" سوى طلبات POST.

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

جرِّب العرض التوضيحي التفاعلي للاطّلاع على نتائج "بحث في الجوار (الجديد)" المعروضة على خريطة.

طلبات "بحث في الجوار (الجديد)"

طلب "بحث في الجوار (الجديد)" هو طلب HTTP POST إلى عنوان URL بالتنسيق التالي:

https://places.googleapis.com/v1/places:searchNearby

يجب تمرير جميع المَعلمات في نص طلب JSON أو في العناوين كجزء من طلب POST. على سبيل المثال:

curl -X POST -d '{
  "includedTypes": ["restaurant"],
  "maxResultCount": 10,
  "locationRestriction": {
    "circle": {
      "center": {
        "latitude": 37.7937,
        "longitude": -122.3965},
      "radius": 500.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.displayName" \
https://places.googleapis.com/v1/places:searchNearby

ردود "بحث في الجوار (الجديد)"

يعرض "بحث في الجوار (الجديد)" كائن JSON كاستجابة. في الردّ:

  • تحتوي مصفوفة places على جميع الأماكن المطابِقة.
  • يتم تمثيل كل مكان في المصفوفة بكائن Place. يحتوي كائن Place على معلومات تفصيلية عن مكان واحد.
  • يحدّد FieldMask الذي تم تمريره في الطلب قائمة الحقول التي يتم عرضها في الكائن Place.

يكون كائن JSON الكامل بالتنسيق التالي:

{
  "places": [
    {
      object (Place)
    }
  ]
}

المعلمات المطلوبة

  • FieldMask

    حدِّد قائمة الحقول التي تريد عرضها في الردّ من خلال إنشاء قناع حقل الردّ. مرِّر قناع حقل الردّ إلى الطريقة باستخدام مَعلمة عنوان URL‏ $fields أو fields، أو باستخدام عنوان HTTP‏ X-Goog-FieldMask. لا توجد قائمة تلقائية بالحقول التي يتم عرضها في الردّ. إذا لم تحدّد قناع الحقل، ستعرض الطريقة خطأً.

    يُعدّ إخفاء الحقول من أفضل ممارسات التصميم لضمان عدم طلب بيانات غير ضرورية، ما يساعد في تجنُّب وقت المعالجة و رسوم الفوترة غير الضرورية.

    حدِّد قائمة بأنواع بيانات الأماكن المطلوب عرضها مفصولة بفواصل. على سبيل المثال، لاسترداد الاسم المعروض وعنوان المكان:

    X-Goog-FieldMask: places.displayName,places.formattedAddress

    استخدِم * لاسترداد جميع الحقول.

    X-Goog-FieldMask: *

    حدِّد حقلًا واحدًا أو أكثر من الحقول التالية:

    • تؤدي الحقول التالية إلى تفعيل رمز التخزين التعريفي "بحث في الجوار Pro":

      places.accessibilityOptions
      places.addressComponents
      places.addressDescriptor*
      places.adrFormatAddress
      places.attributions
      places.businessStatus
      places.consumerAlert
      places.containingPlaces
      places.displayName
      places.formattedAddress
      places.googleMapsLinks
      places.googleMapsTypeLabel
      places.googleMapsUri
      places.iconBackgroundColor
      places.iconMaskBaseUri
      places.id
      places.location
      places.name**
      places.movedPlace
      places.movedPlaceId
      places.openingDate
      places.photos
      places.plusCode
      places.postalAddress
      places.primaryType
      places.primaryTypeDisplayName
      places.pureServiceAreaBusiness
      places.shortFormattedAddress
      places.subDestinations
      places.timeZone
      places.types
      places.utcOffsetMinutes
      places.viewport

      * تتوفّر واصفات العناوين بشكل عام للعملاء في الهند، وهي تجريبية في أماكن أخرى.

      ** يحتوي الحقل places.name على اسم مورد المكان بالتنسيق: places/PLACE_ID. استخدِم places.displayName للوصول إلى الاسم النصي للمكان.

      للاطّلاع على قائمة كاملة بالحقول ورموز التخزين التعريفية المرتبطة بها، يُرجى الرجوع إلى حقول بيانات الأماكن (الجديدة).

    • تؤدي الحقول التالية إلى تفعيل رمز التخزين التعريفي "بحث في الجوار Enterprise":

      places.currentOpeningHours
      places.currentSecondaryOpeningHours
      places.internationalPhoneNumber
      places.nationalPhoneNumber
      places.priceLevel
      places.priceRange
      places.rating
      places.regularOpeningHours
      places.regularSecondaryOpeningHours
      places.transitStation
      places.userRatingCount
      places.websiteUri

      للاطّلاع على قائمة كاملة بالحقول ورموز التخزين التعريفية المرتبطة بها، يُرجى الرجوع إلى حقول بيانات الأماكن (الجديدة).

    • تؤدي الحقول التالية إلى تفعيل رمز التخزين التعريفي "بحث في الجوار Enterprise + Atmosphere":

      places.allowsDogs
      places.curbsidePickup
      places.delivery
      places.dineIn
      places.editorialSummary
      places.evChargeAmenitySummary
      places.evChargeOptions
      places.fuelOptions
      places.generativeSummary
      places.goodForChildren
      places.goodForGroups
      places.goodForWatchingSports
      places.liveMusic
      places.menuForChildren
      places.neighborhoodSummary
      places.parkingOptions
      places.paymentOptions
      places.outdoorSeating
      places.reservable
      places.restroom
      places.reviews
      places.reviewSummary
      routingSummaries*
      places.servesBeer
      places.servesBreakfast
      places.servesBrunch
      places.servesCocktails
      places.servesCoffee
      places.servesDessert
      places.servesDinner
      places.servesLunch
      places.servesVegetarianFood
      places.servesWine
      places.takeout

      * "بحث في الجوار" و"البحث النصي" فقط

      للاطّلاع على قائمة كاملة بالحقول ورموز التخزين التعريفية المرتبطة بها، يُرجى الرجوع إلى حقول بيانات الأماكن (الجديدة).

  • locationRestriction

    المنطقة المطلوب البحث فيها، يتم تحديدها كدائرة، ويتم تعريفها بنقطة مركز ونصف قطر بالمتّر. يجب أن يتراوح نصف القطر بين 0.0 و50000.0، بما في ذلك هذان الرقمان. نصف القطر التلقائي هو 0.0. يجب ضبطه في طلبك على قيمة أكبر من 0.0.

    على سبيل المثال:

    "locationRestriction": {
      "circle": {
        "center": {
          "latitude": 37.7937,
          "longitude": -122.3965
        },
        "radius": 500.0
      }
    }

المعلمات الاختيارية

  • includeFutureOpeningBusinesses

    إذا كانت القيمة true، يتم عرض المؤسسات التي يُتوقّع افتتاحها في المستقبل. القيمة التلقائية هي false.

    لاسترداد حالة المؤسسة، أدرِج places.businessStatus في قناع حقل الطلب. لاسترداد تاريخ الافتتاح المتوقّع للمؤسسة، أدرِج places.openingDate في قناع حقل الطلب.

  • includedTypes/excludedTypes وincludedPrimaryTypes/excludedPrimaryTypes

    تتيح لك تحديد قائمة بأنواع من الجدول "الأنواع - الجدول أ" تُستخدَم لفلترة نتائج البحث. يمكن تحديد ما يصل إلى 50 نوعًا في كل فئة من فئات قيود الأنواع.

    لا يمكن أن يكون للمكان نوع أساسي واحد فقط من الجدول "الأنواع - الجدول أ" مرتبط به. على سبيل المثال، قد يكون النوع الأساسي "mexican_restaurant" أو "steak_house". استخدِم includedPrimaryTypes و excludedPrimaryTypes لفلترة النتائج حسب النوع الأساسي للمكان.

    يمكن أن يكون للمكان أيضًا قيم أنواع متعدّدة من الأنواع الجدول أ مرتبطة به. على سبيل المثال، قد يكون للمطعم الأنواع التالية: "seafood_restaurant", "restaurant", "food", "point_of_interest", "establishment". استخدِم includedTypes وexcludedTypes لفلترة النتائج حسب قائمة الأنواع المرتبطة بـ مكان.

    عند تحديد نوع أساسي عام، مثل "restaurant" أو "hotel"، يمكن أن يحتوي الردّ على أماكن لها نوع أساسي أكثر تحديدًا من النوع المحدّد. على سبيل المثال، يمكنك تحديد تضمين نوع أساسي هو "restaurant". يمكن أن يحتوي الردّ بعد ذلك على أماكن لها نوع أساسي هو "restaurant", ولكن يمكن أن يحتوي الردّ أيضًا على أماكن لها نوع أساسي أكثر تحديدًا، مثل "chinese_restaurant" أو "seafood_restaurant".

    إذا تم تحديد بحث يتضمّن قيودًا متعدّدة على الأنواع، لا يتم عرض سوى الأماكن التي تستوفي جميع القيود. على سبيل المثال، إذا حدّدت {"includedTypes": ["restaurant"], "excludedPrimaryTypes": ["steak_house"]}، تقدّم الأماكن المعروضة خدمات مرتبطة بـ "restaurant" ولكنها لا تعمل بشكل أساسي كـ "steak_house".

    includedTypes

    قائمة بأنواع الأماكن من الجدول أ المطلوب البحث عنها، قائمة قيم مفصولة بفاصلة. إذا لم يتم تحديد هذه المَعلمة، يتم عرض أماكن من جميع الأنواع.

    excludedTypes

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

    إذا حدّدت كلاً من includedTypes ( مثل "school") وexcludedTypes (مثل "primary_school") في الطلب، سيتضمّن الردّ أماكن مصنّفة على أنّها "school" ولكن ليس "primary_school". يتضمّن الردّ أماكن تطابِق نوعًا واحدًا على الأقل من includedTypes ولا تطابِق أيًا من excludedTypes.

    إذا كانت هناك أي أنواع متعارضة، مثل ظهور نوع في كل من includedTypes وexcludedTypes، يتم عرض الخطاء INVALID_REQUEST.

    includedPrimaryTypes

    قائمة قيم مفصولة بفاصلة لأنواع الأماكن الأساسية من الجدول أ المطلوب تضمينها في البحث.

    excludedPrimaryTypes

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

    إذا كانت هناك أي أنواع أساسية متعارضة، مثل ظهور نوع في كل من includedPrimaryTypes و excludedPrimaryTypes, يتم عرض الخطأ INVALID_ARGUMENT.

  • languageCode

    اللغة التي سيتم عرض النتائج بها.

    • يمكنك الاطّلاع على قائمة اللغات المتاحة. تُعدّل Google اللغات المتاحة بشكل متكرّر، لذا قد لا تكون هذه القائمة شاملة.
    • إذا لم يتم تقديم languageCode، تستخدِم واجهة برمجة التطبيقات اللغة en تلقائيًا. إذا حدّدت رمز لغة غير صالح، ستعرض واجهة برمجة التطبيقات الخطأ INVALID_ARGUMENT
    • تبذل واجهة برمجة التطبيقات قصارى جهدها لتقديم عنوان شارع يمكن قراءته لكل من المستخدم و السكان المحليين. لتحقيق هذا الهدف، تعرض واجهة برمجة التطبيقات عناوين الشوارع باللغة المحلية، مع نقلها إلى نص يمكن للمستخدم قراءته إذا لزم الأمر، مع مراعاة اللغة المفضّلة. اللغة. يتم عرض جميع العناوين الأخرى باللغة المفضّلة. يتم عرض جميع مكوّنات العنوان باللغة نفسها، التي يتم اختيارها من المكوّن الأول.
    • إذا لم يتوفّر اسم باللغة المفضّلة، تستخدِم واجهة برمجة التطبيقات أقرب نتيجة مطابِقة.
    • تؤثّر اللغة المفضّلة بشكل طفيف على مجموعة النتائج التي تختار واجهة برمجة التطبيقات عرضها ، والترتيب الذي يتم عرضها به. يفسّر برنامج تحديد المواقع الجغرافية الاختصارات بشكل مختلف حسب اللغة، مثل اختصارات أنواع الشوارع أو المرادفات التي قد تكون صالحة في لغة واحدة ولكن ليس في لغة أخرى.
  • maxResultCount

    يحدّد هذا الحقل الحد الأقصى لعدد نتائج الأماكن المطلوب عرضها. يجب أن تتراوح القيمة بين 1 و20 (تلقائيًا)، بما في ذلك هذان الرقمان.

  • rankPreference

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

    • POPULARITY (تلقائي) يتم ترتيب النتائج حسب مدى رواجها.
    • DISTANCE يتم ترتيب النتائج بترتيب تصاعدي حسب المسافة من الموقع الجغرافي المحدّد.
  • regionCode

    رمز المنطقة المستخدَم لتنسيق الردّ، ويتم تحديده كـ قيمة رمز CLDR مكوّنة من حرفَين. لا توجد قيمة تلقائية.

    إذا كان اسم البلد في حقل formattedAddress في الردّ يطابِق regionCode، يتم حذف رمز البلد من formattedAddress. لا تؤثّر هذه المَعلمة في adrFormatAddress، الذي يتضمّن دائمًا اسم البلد ، أو في shortFormattedAddress، الذي لا يتضمّنه أبدًا.

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

أمثلة على "بحث في الجوار (الجديد)"

العثور على أماكن من نوع واحد

يعرض المثال التالي طلب "بحث في الجوار (الجديد)" للأسماء المعروضة لجميع المطاعم ضمن نصف قطر يبلغ 500 متر، ويتم تحديده من خلال circle:

curl -X POST -d '{
  "includedTypes": ["restaurant"],
  "maxResultCount": 10,
  "locationRestriction": {
    "circle": {
      "center": {
        "latitude": 37.7937,
        "longitude": -122.3965},
      "radius": 500.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.displayName" \
https://places.googleapis.com/v1/places:searchNearby

يُرجى العِلم أنّ عنوان X-Goog-FieldMask يحدّد أنّ الردّ يحتوي على حقول البيانات التالية: places.displayName. يكون الردّ بعد ذلك بالتنسيق التالي:

{
  "places": [
    {
      "displayName": {
        "text": "La Mar Cocina Peruana",
        "languageCode": "en"
      }
    },
    {
      "displayName": {
        "text": "Kokkari Estiatorio",
        "languageCode": "en"
      }
    },
    {
      "displayName": {
        "text": "Harborview Restaurant & Bar",
        "languageCode": "en"
      }
    },
...
}

أضِف المزيد من أنواع البيانات إلى قناع الحقل لعرض معلومات إضافية. على سبيل المثال، أضِف places.formattedAddress,places.types,places.websiteUri لتضمين عنوان المطعم ونوعه وعنوان الويب في الردّ:

curl -X POST -d '{
  "includedTypes": ["restaurant"],
  "maxResultCount": 10,
  "locationRestriction": {
    "circle": {
      "center": {
        "latitude": 37.7937,
        "longitude": -122.3965},
      "radius": 500.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.displayName,places.formattedAddress,places.types,places.websiteUri" \
https://places.googleapis.com/v1/places:searchNearby

يكون الردّ الآن بالتنسيق التالي:

{
  "places": [
    {
      "types": [
        "seafood_restaurant",
        "restaurant",
        "food",
        "point_of_interest",
        "establishment"
      ],
      "formattedAddress": "PIER 1 1/2 The Embarcadero N, San Francisco, CA 94105, USA",
      "websiteUri": "http://lamarsf.com/",
      "displayName": {
        "text": "La Mar Cocina Peruana",
        "languageCode": "en"
      }
    },
    {
      "types": [
        "greek_restaurant",
        "meal_takeaway",
        "restaurant",
        "food",
        "point_of_interest",
        "establishment"
      ],
      "formattedAddress": "200 Jackson St, San Francisco, CA 94111, USA",
      "websiteUri": "https://kokkari.com/",
      "displayName": {
        "text": "Kokkari Estiatorio",
        "languageCode": "en"
      }
    },
...
}

العثور على أماكن من أنواع متعدّدة

يعرض المثال التالي طلب "بحث في الجوار (الجديد)" للأسماء المعروضة لجميع المتاجر الصغيرة ومتاجر المشروبات الكحولية ضمن نصف قطر يبلغ 1000 متر من circle المحدّد:

curl -X POST -d '{
  "includedTypes": ["liquor_store", "convenience_store"],
  "maxResultCount": 10,
  "locationRestriction": {
    "circle": {
      "center": {
        "latitude": 37.7937,
        "longitude": -122.3965
      },
      "radius": 1000.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.displayName,places.primaryType,places.types" \
https://places.googleapis.com/v1/places:searchNearby
يضيف هذا المثال places.primaryType وplaces.types إلى قناع الحقل حتى يتضمّن الردّ معلومات عن نوع كل مكان، ما يسهّل اختيار المكان المناسب من النتائج.

يعرض المثال التالي طلب "بحث في الجوار (الجديد)" لجميع الأماكن من النوع "school"، باستثناء جميع الأماكن من النوع "primary_school"، مع ترتيب النتائج حسب المسافة:

curl -X POST -d '{
  "includedTypes": ["school"],
  "excludedTypes": ["primary_school"],
  "maxResultCount": 10,
  "locationRestriction": {
    "circle": {
      "center": {
        "latitude": 37.7937,
        "longitude": -122.3965
      },
      "radius": 1000.0
    }
  },
  "rankPreference": "DISTANCE"
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.displayName" \
https://places.googleapis.com/v1/places:searchNearby

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

يعرض المثال التالي طلب "بحث في الجوار (الجديد)" عن أماكن بالقرب من نقطة في وسط مدينة "سان فرانسيسكو". في هذا المثال، يمكنك تضمين المَعلمة rankPreference لترتيب النتائج حسب المسافة:

curl -X POST -d '{
  "maxResultCount": 10,
  "rankPreference": "DISTANCE",
  "locationRestriction": {
    "circle": {
      "center": {
        "latitude": 37.7937,
        "longitude": -122.3965
      },
      "radius": 1000.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.displayName" \
https://places.googleapis.com/v1/places:searchNearby

الحصول على واصفات العناوين

تقدّم واصفات العناوين معلومات ذات صلة بموقع المكان، بما في ذلك المعالم القريبة والمناطق التي يحتوي عليها.

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

curl -X POST -d '{
  "maxResultCount": 5,
  "locationRestriction": {
    "circle": {
      "center": {
        "latitude": 37.321328,
        "longitude": -121.946275
      },"radius": 1000
    }
  },
  "includedTypes": ["restaurant", "cafe"],
  "excludedTypes": [],
  "rankPreference":"POPULARITY"
}' \
-H 'Content-Type: application/json' \
-H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.displayName,places.addressDescriptor" \
https://places.googleapis.com/v1/places:searchNearby

يتضمّن الردّ المكان المحدّد في الطلب، وقائمة بالمعالم القريبة ومسافتها من المكان، وقائمة بالمناطق وعلاقة الاحتواء الخاصة بها بالمكان:

  {
    "places": [
      {
        "displayName": {
          "text": "Westfield Valley Fair",
          "languageCode": "en"
        },
        "addressDescriptor": {
          "landmarks": [
            {
              "name": "places/ChIJ62_oCR7Lj4AR_MGWkSPotD4",
              "placeId": "ChIJ62_oCR7Lj4AR_MGWkSPotD4",
              "displayName": {
                "text": "Nordstrom",
                "languageCode": "en"
              },
              "types": [
                "clothing_store",
                "department_store",
                "establishment",
                "point_of_interest",
                "shoe_store",
                "store"
              ],
              "straightLineDistanceMeters": 114.76984,
              "travelDistanceMeters": 114.261856
            },
            {
              "name": "places/ChIJgexMlR_Lj4ARiKCKuhNnjn0",
              "placeId": "ChIJgexMlR_Lj4ARiKCKuhNnjn0",
              "displayName": {
                "text": "Valley Fair Mall Eyexam of CA",
                "languageCode": "en"
              },
              "types": [
                "establishment",
                "health",
                "point_of_interest"
              ],
              "straightLineDistanceMeters": 131.62566,
              "travelDistanceMeters": 237.33253
            },
            {
              "name": "places/ChIJWWIlNx7Lj4ARpe1E0ob-_GI",
              "placeId": "ChIJWWIlNx7Lj4ARpe1E0ob-_GI",
              "displayName": {
                "text": "Din Tai Fung",
                "languageCode": "en"
              },
              "types": [
                "establishment",
                "food",
                "point_of_interest",
                "restaurant"
              ],
              "straightLineDistanceMeters": 110.0775,
              "travelDistanceMeters": 171.41951
            },
            {
              "name": "places/ChIJwyfPQx7Lj4AR7bYI2A2Yc54",
              "placeId": "ChIJwyfPQx7Lj4AR7bYI2A2Yc54",
              "displayName": {
                "text": "Abercrombie & Fitch",
                "languageCode": "en"
              },
              "types": [
                "clothing_store",
                "establishment",
                "point_of_interest",
                "shoe_store",
                "store"
              ],
              "spatialRelationship": "DOWN_THE_ROAD",
              "straightLineDistanceMeters": 53.620117,
              "travelDistanceMeters": 2.4578214
            },
            {
              "name": "places/ChIJpycNQx7Lj4ARjhXw3PrM_kU",
              "placeId": "ChIJpycNQx7Lj4ARjhXw3PrM_kU",
              "displayName": {
                "text": "Hollister Co.",
                "languageCode": "en"
              },
              "types": [
                "clothing_store",
                "establishment",
                "point_of_interest",
                "shoe_store",
                "store"
              ],
              "spatialRelationship": "DOWN_THE_ROAD",
              "straightLineDistanceMeters": 56.53726,
              "travelDistanceMeters": 15.418246
            }
          ],
          "areas": [
            {
              "name": "places/ChIJb3F-EB7Lj4ARnHApQ_Hu1gI",
              "placeId": "ChIJb3F-EB7Lj4ARnHApQ_Hu1gI",
              "displayName": {
                "text": "Westfield Valley Fair",
                "languageCode": "en"
              },
              "containment": "WITHIN"
            },
            {
              "name": "places/ChIJXYuykB_Lj4AR1Ot8nU5q26Q",
              "placeId": "ChIJXYuykB_Lj4AR1Ot8nU5q26Q",
              "displayName": {
                "text": "Valley Fair",
                "languageCode": "en"
              },
              "containment": "WITHIN"
            },
            {
              "name": "places/ChIJtYoUX2DLj4ARKoKOb1G0CpM",
              "placeId": "ChIJtYoUX2DLj4ARKoKOb1G0CpM",
              "displayName": {
                "text": "Central San Jose",
                "languageCode": "en"
              },
              "containment": "OUTSKIRTS"
            }
          ]
        }
      },
  /.../
  }

العثور على المؤسسات التي سيتم افتتاحها في المستقبل

يعرض المثال التالي طلب "بحث في الجوار (الجديد)" عن المؤسسات التي سيتم افتتاحها في ال مستقبل في "نيو ميدوز"، أيداهو:

curl -X POST \
-H "Content-Type: application/json" \
-H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.id,places.displayName,places.businessStatus,places.openingDate" \
-d '{
  "includeFutureOpeningBusinesses": true,
  "maxResultCount": 20,
  "locationRestriction": {
    "circle": {
      "center": {"latitude": 44.9755100, "longitude": -116.2842180},
      "radius": 20
    }
  },
  "rankPreference": "DISTANCE"
}' \
"https://places.googleapis.com/v1/places:searchNearby"

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

{
  "places": [
    {
      "id": "ChIJp1-VoKWJplQRMz8g-7Wa3Do",
      "businessStatus": "FUTURE_OPENING",
      "displayName": {
        "text": "Roberts Greenhouse and Tree Farm",
        "languageCode": "en"
      },
      "openingDate": {
        "year": 2026,
        "month": 4,
        "day": 15
      }
    }
  ]
}

الحصول على معلومات عن محطة النقل العام

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

يعرض المثال التالي طلبًا لمحطات النقل العام ضمن 50 مترًا من وسط مدينة "مانهاتن":

curl -X POST \
-H "Content-Type: application/json" \
-H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.id,places.displayName,places.transitStation" \
-d '{
  "includedTypes": ["transit_station"],
  "locationRestriction": {
    "circle": {
      "center": {"latitude": 40.754851, "longitude": -73.984164},
      "radius": 50.0
    }
  }
}' \
"https://places.googleapis.com/v1/places:searchNearby"

يتضمّن نص الردّ معلومات عن كل محطة ضمن نصف القطر، والخطوط التي تخدمها الـ محطة، والتنبيهات الصادرة عن مؤسسات النقل العام في تلك المحطة، ومعلومات المغادرة:

{
  "places": [
    {
      "id": "ChIJH2EstKpZwokRCwZtYyMd5Fg",
      "displayName": {
        "text": "6 Av/W 41 St",
        "languageCode": "en"
      },
      "transitStation": {
        "displayName": {
          "text": "6 Av/W 41 St",
          "languageCode": "en"
        },
        "agencies": [
          {
            "displayName": {
              "text": "ShortLine Hudson",
              "languageCode": "en"
            },
            "url": "https://www.coachusa.com/",
            "lines": [
              {
                "id": "ChIJSQlbzvPwwokRolrIA-Kuh6o",
                "vehicleType": "BUS",
                "displayName": {
                  "text": "200 - Northern District – Nanuet",
                  "languageCode": "en"
                },
                "shortDisplayName": {
                  "text": "ShortLine Hudson",
                  "languageCode": "en"
                },
                "textColor": "#000000",
                "backgroundColor": "#ED60A3",
                "vehicleIcon": {
                  "url": "https://maps.gstatic.com/mapfiles/transit/iw2/svg/bus2.svg"
                }
              }
            ]
          },
          {
            "displayName": {
              "text": "MTA New York City Transit",
              "languageCode": "en"
            },
            "url": "http://www.mta.info/",
            "lines": [
              {
                "id": "ChIJjUrj7PBewokR3O3S2JVpBrI",
                "vehicleType": "SUBWAY",
                "displayName": {
                  "text": "E Train (8 Av Local)",
                  "languageCode": "en"
                },
                "shortDisplayName": {
                  "text": "E Line",
                  "languageCode": "en"
                },
                "textColor": "#FFFFFF",
                "backgroundColor": "#0039A6",
                "url": "https://www.mta.info/schedules/subway/e-train",
                "icon": {
                  "url": "https://maps.gstatic.com/mapfiles/transit/iw2/svg/us-ny-mta/E.svg",
                  "nameIncluded": true
                },
                "vehicleIcon": {
                  "url": "https://maps.gstatic.com/mapfiles/transit/iw2/svg/subway2.svg"
                }
              },
              ...
            ]
          },
        "stops": [
          {
            "id": "ChIJvRnquapZwokRdUOyVwNGbe8",
            "displayName": {
              "text": "6 Av/W 41 St",
              "languageCode": "en"
            },
            "location": {
              "latitude": 40.754509,
              "longitude": -73.984216500000016
            },
            "wheelchairAccessibleEntrance": true
          }
        ],
        "departureBoards": [
          {
            "displayType": "DIRECTION_CENTRIC",
            "rows": [
              {
                "departures": [
                  {
                    "timedDeparture": {
                      "scheduledTime": "2026-05-15T22:29:51Z",
                      "timingType": "SCHEDULED"
                    },
                    "originallyScheduledStopId": "ChIJvRnquapZwokRdUOyVwNGbe8",
                    "lineId": "ChIJA1aFyaZfwokRkO5869M6UXk"
                  }
                ]
              },
              {
                "departures": [
                  {
                    "timedDeparture": {
                      "scheduledTime": "2026-05-15T22:33:55Z",
                      "timingType": "SCHEDULED"
                    },
                    "originallyScheduledStopId": "ChIJvRnquapZwokRdUOyVwNGbe8",
                    "lineId": "ChIJj3iCEwJfwokRZE2Qtnm4pPI"
                  }
                ]
              },
              ...
            ]
          }
        ]
      }
    },
    ...
    {
      {
        "id": "ChIJPyq6TZBZwokRdGoiJ5Iq_hE",
        "vehicleType": "BUS",
        "displayName": {
          "text": "W 44 St - South Ferry",
          "languageCode": "en"
        },
        "shortDisplayName": {
          "text": "M55",
          "languageCode": "en"
        },
        "textColor": "#FFFFFF",
        "backgroundColor": "#1D59B3",
        "vehicleIcon": {
          "url": "https://maps.gstatic.com/mapfiles/transit/iw2/svg/bus2.svg"
        },
        "alerts": [
          {
            "effect": "OTHER",
            "texts": [
              {
                "headline": {
                  "text": "Information",
                  "languageCode": "en"
                },
                "summary": {
                  "text": "Northbound M20 and M55 stop on State St at Bridge St is closed; use the temporary stop on State St before the intersection instead",
                  "languageCode": "en"
                },
                "fullDescription": {
                  "text": "See a map of the new stop location. What's happening? Construction",
                  "languageCode": "en"
                }
              }
            ],
            "detailsUrls": [
              {
                "url": "https://www.mta.info/"
              }
            ],
            "cause": "OTHER_CAUSE",
            "startTime": "2025-04-02T04:00:00Z",
            "endTime": "2026-06-15T00:00:00Z",
            "attribution": {
              "link": {
                "text": "www.mta.info",
                "url": "https://www.mta.info/"
              }
            },
            "createTime": "2026-05-15T22:32:00Z",
            "severityLevel": "INFO"
          }
        ]
      },
      ...
    }
    ...
  }

الحصول على المداخل ونقاط التنقّل

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

تعرض نقاط التنقّل navigationPointToken. يمكنك تمرير هذا الرمز المميّز إلى Navigation SDK (متاح لنظامَي التشغيل Android أو iOS) أو Routes API لتوجيه السائقين إلى هذا الموقع الجغرافي المحدّد. لمزيد من المعلومات، يُرجى الاطّلاع على الرموز المميّزة لنقاط التنقّل.

يعرض المثال التالي طلب "بحث في الجوار (الجديد)" يتضمّن entrances وnavigationPoints في قناع الحقل:

curl -X POST \
-H "Content-Type: application/json" \
-H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.id,places.displayName,places.entrances,places.navigationPoints" \
-d '{
  "includedTypes": ["airport"],
  "maxResultCount": 1,
  "locationRestriction": {
    "circle": {
      "center": {"latitude": 37.6193, "longitude": -122.3816},
      "radius": 1000.0
    }
  }
}' \
"https://places.googleapis.com/v1/places:searchNearby"

يتضمّن الردّ المداخل ونقاط التنقّل للمكان:

{
  "places": [
    {
      "id": "ChIJVVVVVYx3j4ARP-3NGldc8qQ",
      "displayName": {
        "text": "San Francisco International Airport",
        "languageCode": "en"
      },
      "entrances": [
        {
          "location": {
            "latitude": 37.6172154,
            "longitude": -122.3839724
          }
        },
        {
          "location": {
            "latitude": 37.6174073,
            "longitude": -122.384196
          }
        },
        ...
      ],
      "navigationPoints": [
        {
          "navigationPointToken": "ChIJoioBjMLOQkAR0A3yH_eYXsA...",
          "displayName": {
            "text": "International Terminal Departures Level",
            "languageCode": "en"
          },
          "location": {
            "latitude": 37.6153121,
            "longitude": -122.3900833
          },
          "travelModes": ["WALK"]
        },
        {
          "navigationPointToken": "ChIJy5JKws_OQkAROx0jNN2YXsA...",
          "displayName": {
            "text": "Domestic Garage - SFO Short Term Parking",
            "languageCode": "en"
          },
          "location": {
            "latitude": 37.6157153,
            "longitude": -122.3885012
          },
          "travelModes": ["DRIVE", "WALK"],
          "usages": ["PARKING"]
        },
        ...
      ]
    }
  ]
}

جرِّبه الآن

يتيح لك مستكشف واجهات برمجة التطبيقات إرسال طلبات نموذجية لتتعرّف على واجهة برمجة التطبيقات وخياراتها.

  1. انقر على رمز واجهة برمجة التطبيقات api على الجانب الأيسر من الصفحة.

  2. يمكنك تعديل مَعلمات الطلب اختياريًا.

  3. انقر على الزر تنفيذ. في مربّع الحوار، اختَر الحساب الذي تريد استخدامه لإرسال الطلب.

  4. في لوحة مستكشف واجهات برمجة التطبيقات، انقر على رمز ملء الشاشة fullscreen لتوسيع نافذة مستكشف واجهات برمجة التطبيقات.