جستجوی اطراف (جدید)

انتخاب پلاتفرم: Android iOS JavaScript خدمات وب
توسعه‌دهندگان منطقه اقتصادی اروپا (EEA)

مقدمه

درخواست جستجوی اطراف (جدید) یک یا چند نوع مکان را می‌گیرد و فهرستی از مکان‌های منطبق در منطقه مشخص‌شده برمی‌گرداند. پوشش فیلدی که یک یا چند نوع داده را مشخص می‌کند الزامی است. «جستجوی اطراف» (جدید) فقط از درخواست‌های POST پشتیبانی می‌کند.

‫APIs Explorer به شما امکان می‌دهد درخواست‌های زنده ارسال کنید تا بتوانید با میانای برنامه‌سازی کاربردی و گزینه‌های میانای برنامه‌سازی کاربردی آشنا شوید:

نمونه تعاملی را امتحان کنید تا نتایج «جستجوی اطراف» (جدید) را که روی نقشه نمایش داده می‌شود ببینید.

درخواست‌های «جستجوی اطراف» (جدید)

درخواست «جستجوی مکان‌های اطراف (جدید)» یک درخواست HTTP POST به نشانی وب در فرم است:

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

    با ایجاد پوشش فیلد پاسخ، فهرست فیلدهایی را که باید در پاسخ برگردانده شود مشخص کنید. ماسک فیلد پاسخ را بااستفاده از پارامتر نشانی وب $fields یا fields، یا بااستفاده از سرصفحه HTTP X-Goog-FieldMask به روش ارسال کنید. فهرست پیش‌فرضی از فیلدهای برگشتی در پاسخ وجود ندارد. اگر پوشش فیلد را حذف کنید، روش خطا برمی‌گرداند.

    ماسک کردن فیلد روش طراحی خوبی است که تضمین می‌کند داده‌های غیرضروری درخواست نکنید، که این امر به جلوگیری از زمان پردازش غیرضروری و هزینه‌های صورت‌حساب کمک می‌کند.

    فهرست جداشده با کامایی از انواع داده‌های مکان را برای برگشتن مشخص کنید. برای مثال، برای بازیابی نام نمایشی و نشانی مکان.

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

    برای بازیابی همه فیلدها، از * استفاده کنید.

    X-Goog-FieldMask: *

    یک یا چند فیلد زیر را مشخص کنید:

    • فیلدهای زیر Nearby Search Pro SKU را راه‌اندازی می‌کنند:

      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 برای دسترسی به نام نوشتاری مکان استفاده کنید.

      برای فهرست کامل فیلدها و «واحد نگهداری کالا» مرتبط با آن‌ها، فیلدهای داده مکان (جدید) را ببینید.

    • فیلدهای زیر Nearby Search Enterprise SKU را راه‌اندازی می‌کنند:

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

      برای فهرست کامل فیلدها و «واحد نگهداری کالا» مرتبط با آن‌ها، فیلدهای داده مکان (جدید) را ببینید.

    • فیلدهای زیر SKU «سازمانی جستجوی اطراف + 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

    منطقه‌ای که باید جستجو شود به‌صورت دایره‌ای مشخص می‌شود که با نقطه مرکزی و شعاع به متر تعریف می‌شود. شعاع باید بین ۰٫۰ و ۵۰۰۰۰٫۰ باشد و می‌تواند این دو عدد را نیز دربر بگیرد. شعاع پیش‌فرض ۰٫۰ است. باید آن را در درخواستتان روی مقداری بزرگ‌تر از ۰٫۰ تنظیم کنید.

    برای مثال:

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

پارامترهای اختیاری

  • includeFutureOpeningBusinesses

    اگر true، کسب‌وکارهایی را برمی‌گرداند که انتظار می‌رود در آینده باز شوند. پیش‌فرض false است.

    برای بازیابی وضعیت کسب‌وکار، places.businessStatus را در پوشش فیلد درخواستتان بگنجانید. برای بازیابی تاریخ افتتاح پیش‌بینی‌شده کسب‌وکار، places.openingDate را در پوشش فیلد درخواستتان بگنجانید.

  • includedTypes/excludedTypes, includedPrimaryTypes/excludedPrimaryTypes

    به شما امکان می‌دهد فهرستی از انواع را از انواع جدول A مشخص کنید که برای فیلتر کردن نتایج جستجو استفاده می‌شود. حداکثر ۵۰ نوع را می‌توان در هر دسته محدودیت نوع مشخص کرد.

    مکان فقط می‌تواند یک نوع اصلی از انواع جدول A منسوب به آن داشته باشد. برای مثال، نوع اصلی ممکن است "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 استفاده می‌کند. اگر کد زبان نامعتبری را مشخص کنید، API خطای INVALID_ARGUMENT برمی‌گرداند.
    • این API تلاش می‌کند نشانی خیابانی ارائه دهد که هم برای کاربر و هم برای افراد محلی خوانا باشد. برای دستیابی به این هدف، نشانی‌های خیابان را به زبان محلی برمی‌گرداند و درصورت لزوم، آن‌ها را به خطی که کاربر بتواند بخواند آوانویسی می‌کند و زبان ترجیحی را رعایت می‌کند. همه نشانی‌های دیگر به زبان ترجیحی برگردانده می‌شوند. اجزای نشانی همه به یک زبان برگردانده می‌شوند که از اولین جزء انتخاب می‌شود.
    • اگر نامی به زبان ترجیحی دردسترس نباشد، API از نزدیک‌ترین مطابقت استفاده می‌کند.
    • زبان ترجیحی تأثیر کمی بر مجموعه نتایجی دارد که API برای برگرداندن انتخاب می‌کند و ترتیبی که در آن برگردانده می‌شوند. کدبند جغرافیایی بسته به زبان، مخفف‌ها را به‌صورت متفاوت تفسیر می‌کند، مثلاً مخفف‌های انواع خیابان، یا مترادف‌هایی که ممکن است در یک زبان معتبر باشند اما در زبان دیگر معتبر نباشند.
  • maxResultCount

    حداکثر تعداد نتایج مکان را برای برگشت مشخص می‌کند. باید بین ۱ و ۲۰ (پیش‌فرض) فراگیر باشد.

  • rankPreference

    نوع رتبه‌بندی برای استفاده. اگر این پارامتر حذف شود، نتایج براساس محبوبیت رتبه‌بندی می‌شوند. می‌تواند یکی از موارد زیر باشد:

    • POPULARITY (پیش‌فرض) نتایج را براساس محبوبیت آن‌ها مرتب می‌کند.
    • DISTANCE نتایج را براساس فاصله آن‌ها از مکان مشخص‌شده به‌ترتیب صعودی مرتب می‌کند.
  • regionCode

    کد منطقه‌ای که برای قالب‌بندی پاسخ استفاده می‌شود، به‌عنوان مقدار کد CLDR دو نویسه‌ای مشخص شده است. مقدار پیش‌فرضی وجود ندارد.

    اگر نام کشور فیلد formattedAddress در پاسخ با regionCode مطابقت داشته باشد، کد کشور از formattedAddress حذف می‌شود. این پارامتر هیچ تأثیری بر adrFormatAddress ندارد، که همیشه نام کشور را دربرمی‌گیرد، یا بر shortFormattedAddress، که هرگز آن را دربرنمی‌گیرد.

    اکثر کدهای CLDR با کدهای ISO 3166-1 یکسان هستند، با چند استثنای قابل‌توجه. برای مثال، دامنه سطح بالای کد کشور پادشاهی متحد «uk»‏ (co.uk.) است، درحالی‌که کد ISO 3166-1 آن «gb» است (ازنظر فنی برای نهاد «پادشاهی متحد بریتانیای کبیر و ایرلند شمالی»). این پارامتر می‌تواند براساس قانون ذی‌ربط بر نتایج تأثیر بگذارد.

نمونه‌های «جستجوی اطراف» (جدید)

پیدا کردن مکان‌های یک نوع

مثال زیر درخواست «جستجوی اطراف» (جدید) را برای نمایش نام‌های همه رستوران‌ها در شعاع ۵۰۰ متری نشان می‌دهد که با 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"
      }
    },
...
}

پیدا کردن مکان‌هایی از انواع مختلف

مثال زیر درخواست «جستجوی اطراف» (جدید) را برای نام‌های نمایشی همه فروشگاه‌های رفاهی و مشروب‌فروشی‌ها در شعاع ۱۰۰۰ متری 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
      }
    }
  ]
}

دریافت اطلاعات ایستگاه حمل‌ونقل عمومی

می‌توانید از Nearby Search (New) برای دریافت اطلاعات درباره ایستگاه‌های حمل‌ونقل عمومی در شعاع مشخصی از یک مکان معین استفاده کنید. بدنه پاسخ شامل اطلاعاتی درباره ایستگاه است، ازجمله نام ایستگاه، دفاتر حمل‌ونقل عمومی وابسته، و خطوط حمل‌ونقل عمومی که به ایستگاه خدمات ارائه می‌دهند. علاوه‌براین، پاسخ شامل نماد وسیله نقلیه و رنگ‌هایی است که می‌توانید از آن‌ها برای نمایش اطلاعات ایستگاه حمل‌ونقل عمومی استفاده کنید.

مثال زیر درخواست ایستگاه‌های ترابری در فاصله ۵۰ متری از مرکز منهتن را نشان می‌دهد:

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 را برمی‌گردانند. می‌توانید این توکن را به «کیت توسعه نرم‌افزار پیمایش» (موجود برای Android یا iOS) یا میانای برنامه‌سازی کاربردی Routes ارسال کنید تا رانندگان را به آن مکان خاص هدایت کنید. برای اطلاعات بیشتر، نشان‌های نقطه ناوبری را ببینید.

مثال زیر درخواست «جستجوی اطراف» (جدید) را نشان می‌دهد که شامل 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 api را در سمت چپ صفحه انتخاب کنید.

  2. درصورت تمایل، پارامترهای درخواست را ویرایش کنید.

  3. دکمه اجرا را انتخاب کنید. در کادر گفتگو، حسابی را که می‌خواهید برای درخواست استفاده شود انتخاب کنید.

  4. در پانل «کاوشگر میاناهای برنامه‌سازی کاربردی»، نماد تمام‌صفحه تمام‌صفحه را برای ازهم بازکردن پنجره «کاوشگر میاناهای برنامه‌سازی کاربردی» انتخاب کنید.