خدمة الإكمال التلقائي (الجديدة) هي خدمة ويب تعرض تنبؤات الأماكن وتوقعات طلبات البحث استجابةً لطلب HTTP. في الطلب، حدِّد سلسلة بحث ملف شخصي وحدودًا جغرافية تتحكّم في منطقة البحث.
يمكن أن تتطابق خدمة الإكمال التلقائي (جديدة) مع الكلمات الكاملة والسلاسل الفرعية للإدخال، وحل أسماء الأماكن والعناوين ورموز المواقع المفتوحة. وبالتالي، يمكن للتطبيقات إرسال طلبات بحث مثل أنواع المستخدمين، وذلك لتقديم توقّعات سريعة وطلبات البحث.
يمكن أن يحتوي الردّ من واجهة برمجة التطبيقات الخاصة بميزة "الإكمال التلقائي (الإصدار الجديد)" على نوعين من الاقتراحات:
- التوقّعات المتعلّقة بالأماكن: الأماكن، مثل الأنشطة التجارية والعناوين ونقاط الاهتمام، استنادًا إلى سلسلة نص الإدخال المحدّدة ومنطقة البحث يتم عرض اقتراحات الأماكن تلقائيًا.
- التوقّعات المتعلّقة بطلبات البحث: سلاسل طلبات البحث التي تتطابق مع سلسلة النص التي تم إدخالها
ومنطقة البحث لا يتم عرض التوقّعات لطلبات البحث تلقائيًا. استخدِم مَعلمة الطلب
includeQueryPredictions
لإضافة توقّعات طلبات البحث إلى الردّ.
على سبيل المثال، يمكنك استدعاء واجهة برمجة التطبيقات باستخدام سلسلة تحتوي على إدخال جزئي من المستخدم، وهو "Sicilian piz"، مع حصر منطقة البحث في سان فرانسيسكو، كاليفورنيا. يحتوي الردّ بعد ذلك على قائمة توقّعات الأماكن التي تتطابق مع سلسلة البحث ومنطقة البحث، مثل المطعم الذي يحمل اسم "Sicilian Pizza Kitchen"، بالإضافة إلى تفاصيل عن المكان.
تم تصميم التوقّعات المتعلّقة بالأماكن المعروضة للمستخدم لمساعدته في اختيار المكان المطلوب. يمكنك تقديم طلب بشأن تفاصيل الأماكن (جديد) للحصول على مزيد من المعلومات عن أيّ من التوقّعات التي تم عرضها للأماكن.
يمكن أن يحتوي الردّ أيضًا على قائمة بعبارات البحث المقترَحة التي تتطابق مع
سلسلة البحث ومنطقة البحث، مثل "بيتزا ومعكرونة صقلية". يتضمّن كل توقّع طلب بحث في الردّ على الحقل text
الذي يحتوي على سلسلة بحث نصي مقترَحة. استخدِم هذه السلسلة كإدخال في البحث النصي (جديد) لإجراء بحث أكثر تفصيلاً.
يتيح لك "مستكشف واجهة برمجة التطبيقات" إرسال طلبات مباشرة حتى تتمكّن من التعرّف على واجهة برمجة التطبيقات وخيارات واجهة برمجة التطبيقات:
جرِّبه الآنطلبات الإكمال التلقائي (الجديدة)
طلب "الإكمال التلقائي (جديد)" هو طلب HTTP POST إلى عنوان URL في الشكل التالي:
https://places.googleapis.com/v1/places:autocomplete
نقْل جميع المَعلمات في نص طلب JSON أو في العناوين كجزء من طلب POST على سبيل المثال:
curl -X POST -d '{ "input": "pizza", "locationBias": { "circle": { "center": { "latitude": 37.7937, "longitude": -122.3965 }, "radius": 500.0 } } }' \ -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \ https://places.googleapis.com/v1/places:autocomplete
لمحة عن الردّ
تعرض ميزة "الإكمال التلقائي" (جديد) كائن JSON كرد. في الردّ:
- تحتوي المصفوفة
suggestions
على جميع الأماكن وطلبات البحث المتوقّعة بالترتيب استنادًا إلى مدى صلتها بموضوع البحث. ويتم تمثيل كل مكان من خلال الحقلplacePrediction
ويتم تمثيل كل طلب بحث من خلال الحقلqueryPrediction
. - يحتوي حقل
placePrediction
على معلومات تفصيلية حول اقتراح مكان واحد ، بما في ذلك معرّف المكان والوصف النصي. - يحتوي حقل
queryPrediction
على معلومات مفصّلة حول توقّعqueryPrediction
طلبات بحث واحدة.
يكون عنصر JSON الكامل على النحو التالي:
{ "suggestions": [ { "placePrediction": { "place": "places/ChIJ5YQQf1GHhYARPKG7WLIaOko", "placeId": "ChIJ5YQQf1GHhYARPKG7WLIaOko", "text": { "text": "Amoeba Music, Haight Street, San Francisco, CA, USA", "matches": [ { "endOffset": 6 }] }, ... }, { "queryPrediction": { "text": { "text": "Amoeba Music", "matches": [ { "endOffset": 6 }] }, ... } ...] }
المعلمات المطلوبة
-
الإدخال
سلسلة النصوص المطلوب البحث فيها. حدِّد الكلمات الكاملة والسلسلة الفرعية، وأسماء الأماكن والعناوين ورموز المواقع المفتوحة. تُعرِض خدمة "الإكمال التلقائي (جديد)" المطابقات المُحتمَلة استنادًا إلى هذه السلسلة وترتيب النتائج استنادًا إلى مدى صلة كل نتيجة بطلب البحث.
المعلمات الاختيارية
-
FieldMask
حدِّد قائمة الحقول التي تريد عرضها في الاستجابة عن طريق إنشاء قناع حقل الاستجابة. نقْل قناع حقل الاستجابة إلى الطريقة باستخدام عنوان HTTP
X-Goog-FieldMask
.حدِّد قائمة مفصولة بفواصل لحقول الاقتراحات التي تريد عرضها. على سبيل المثال، لاسترداد
suggestions.placePrediction.place
وsuggestions.placePrediction.text
من الاقتراح.X-Goog-FieldMask: places.displayName,places.formattedAddress
استخدِم
*
لاسترداد جميع الحقول.X-Goog-FieldMask: *
-
includedPrimaryTypes
لا يمكن أن يتضمّن المكان سوى نوع أساسي واحد من الأنواع المدرَجة في الجدول "أ" أو الجدول "ب". على سبيل المثال، قد يكون النوع الأساسي
"mexican_restaurant"
أو"steak_house"
.تعرض واجهة برمجة التطبيقات تلقائيًا جميع الأماكن استنادًا إلى المَعلمة
input
، وذلك بغض النظر عن قيمة النوع الأساسي المرتبطة بالمكان. يمكنك حصر النتائج لتكون من نوع أساسي أو أنواع أساسية معيّنة من خلال ضبط مَعلمةincludedPrimaryTypes
.استخدِم هذه المَعلمة لتحديد ما يصل إلى خمس قيم من النوع من الجدول "أ" أو الجدول "ب". يجب أن يتطابق مكان مع إحدى قيم النوع الأساسي المحدّدة ليتم تضمينه في الردّ.
يمكن أن تتضمّن هذه المَعلمة أيضًا بدلاً من ذلك أحد الخيارَين
(regions)
أو(cities)
. تصفِّر مجموعة أنواع(regions)
المناطق أو التقسيمات، مثل الأحياء والرموز البريدية. تصفِّر مجموعة الأنواع(cities)
الأماكن التي تحدّدها Google كمدينة.يتم رفض الطلب مع ظهور خطأ
INVALID_REQUEST
في الحالات التالية:- تم تحديد أكثر من خمسة أنواع.
- تم تحديد أي نوع بالإضافة إلى
(cities)
أو(regions)
. - تم تحديد أي أنواع غير معروفة.
-
includePureServiceAreaBusinesses
في حال ضبط السمة على
true
، يشمل الردّ الأنشطة التجارية التي تزور العملاء أو تقدّم خدمة التوصيل إليهم مباشرةً، ولكن ليس لديها موقع جغرافي فعلي للنشاط التجاري. في حال ضبط القيمة علىfalse
، لا تعرض واجهة برمجة التطبيقات سوى الأنشطة التجارية التي لها موقع جغرافي. -
includeQueryPredictions
إذا كان
true
، يتضمّن الردّ كلّ من عبارات البحث المقترَحة والمواقع الجغرافية المقترَحة. القيمة التلقائية هيfalse
، ما يعني أنّ الاستجابة تتضمّن توقّعات الأماكن فقط. -
includedRegionCodes
يمكنك تضمين نتائج من قائمة المناطق المحددة فقط، والتي يتم تحديدها كمصفوفة تصل إلى 15 قيمة من حرفَين ضمن ccTLD ("نطاق المستوى الأعلى"). في حال حذف هذا الحقل، لن يتم تطبيق أي قيود على الردّ. على سبيل المثال، لحصر المناطق في ألمانيا وفرنسا، اتّبِع الخطوات التالية:
"includedRegionCodes": ["de", "fr"]
إذا حدّدت كلاً من
locationRestriction
وincludedRegionCodes
، يتمّ عرض النتائج في منطقة تقاطع الإعدادَين. -
inputOffset
فهرس أحرف Unicode بدءًا من الصفر يشير إلى موضع المؤشر في
input
. يمكن أن يؤثّر موضع المؤشر في التوقّعات التي يتم عرضها. إذا كان الحقل فارغًا، يتم ضبطه تلقائيًا على طولinput
. -
languageCode
اللغة المفضّلة لعرض النتائج قد تكون النتائج بلغات مختلطة إذا كانت اللغة المستخدَمة في
input
مختلفة عن القيمة المحدّدة فيlanguageCode
، أو إذا لم يكن للمكان المعروض ترجمة من اللغة المحلية إلىlanguageCode
.- يجب استخدام رموز اللغة BCP-47 وفق معيار IETF لتحديد اللغة المفضّلة.
-
في حال عدم تقديم
languageCode
، تستخدم واجهة برمجة التطبيقات القيمة المحدّدة في عنوانAccept-Language
. إذا لم يتم تحديد أيٍ من السمتَين، تكون القيمة التلقائية هيen
. إذا حدّدت رمز لغة غير صالح، ستعرض واجهة برمجة التطبيقات الخطأINVALID_ARGUMENT
. - يكون للّغة المفضّلة تأثير بسيط في مجموعة النتائج التي تختار واجهة برمجة التطبيقات عرضها، وترتيب عرضها. ويؤثّر ذلك أيضًا في قدرة واجهة برمجة التطبيقات على تصحيح الأخطاء الإملائية.
-
تحاول واجهة برمجة التطبيقات توفير عنوان شارع يمكن لكل من المستخدم والسكان المحليين قراءته، ويعكس في الوقت نفسه البيانات التي أدخلها المستخدم. يتم تنسيق توقّعات الأماكن
بشكل مختلف حسب إدخال المستخدم في كل طلب.
-
يتم أولاً اختيار العبارات المطابِقة في معلَمة
input
، باستخدام أسماء تتماشى مع إعدادات اللغة المفضّلة التي أشرت إليها المعلَمةlanguageCode
عند توفّرها، بينما يتم استخدام الأسماء التي تتطابق على أفضل نحو مع البيانات التي أدخلها المستخدم. -
يتم تنسيق عناوين الشوارع باللغة المحلية، في نص برمجي يمكن للمستخدم قراءة
محتواه، وذلك عندما يكون ذلك ممكنًا، فقط بعد اختيار عبارات مطابقة لمطابقة العبارات الواردة في المَعلمة
input
. -
ويتم عرض جميع العناوين الأخرى باللغة المفضّلة بعد اختيار العبارات المطابقة لمطابقة العبارات في المعلَمة
input
. إذا لم يكن الاسم متوفرًا باللغة المفضّلة، تستخدم واجهة برمجة التطبيقات أقرب نتيجة مطابقة.
-
يتم أولاً اختيار العبارات المطابِقة في معلَمة
locationBias أو locationRestriction
يمكنك تحديد
locationBias
أوlocationRestriction
، ولكن ليس كليهما، لتحديد منطقة البحث. يمكنك اعتبارlocationRestriction
محددًا للمنطقة التي يجب أن تظهر فيها النتائج، وlocationBias
محددًا للمنطقة التي يجب أن تكون النتائج قريبة منها ولكن يمكن أن تكون خارج المنطقة.locationBias
تُستخدَم لتحديد منطقة للبحث فيها. يؤدي هذا الموقع الجغرافي إلى انحياز، ما يعني أنّه يمكن عرض النتائج المتعلقة بالموقع الجغرافي المحدّد، بما في ذلك النتائج خارج المنطقة المحدّدة.
locationRestriction
لتحديد منطقة للبحث. ولا يتم عرض نتائج خارج المنطقة المحدّدة.
حدِّد المنطقة
locationBias
أوlocationRestriction
على أنّها إطار عرض مستطيل أو دائرة.يتم تحديد الدائرة من خلال نقطة المركز ونصف القطر بالمتر. يجب أن يتراوح نصف القطر بين 0.0 و50000.0، بما في ذلك هذين الرقمَين. القيمة التلقائية هي 0.0. بالنسبة إلى
locationRestriction
، يجب ضبط النطاق الجغرافي على قيمة أكبر من 0.0. بخلاف ذلك، لن يعرض الطلب أي نتائج.على سبيل المثال:
"locationBias": { "circle": { "center": { "latitude": 37.7937, "longitude": -122.3965 }, "radius": 500.0 } }
المستطيل هو إطار عرض لخطوط الطول والعرض، ويتم تمثيله بشكل قطري مقابل
low
والنقاط العالية. يُعدّ إطار العرض منطقة مغلقة، ما يعني أنّه يتضمّن حدوده. يجب أن تتراوح حدود خط العرض بين -90 و90 درجة، ويجب أن تتراوح حدود خط الطول بين -180 و180 درجة:- إذا كان
low
=high
، يتكوّن إطار العرض من تلك النقطة الواحدة. - إذا كان
low.longitude
>high.longitude
، يتم عكس نطاق خط الطول (يمر إطار العرض بخط طول 180 درجة). - إذا كانت قيمة
low.longitude
= -180 درجة وhigh.longitude
= 180 درجة، سيتضمّن إطار العرض جميع خطوط الطول. - إذا كانت
low.longitude
= 180 درجة وhigh.longitude
= -180 درجة، يكون نطاق خط الطول فارغًا.
يجب تعبئة كلّ من
low
وhigh
، ولا يمكن أن يكون المربّع فارغًا. يؤدي استخدام إطار عرض فارغ إلى حدوث خطأ.على سبيل المثال، تحيط إطار العرض هذا بمدينة نيويورك بالكامل:
"locationBias": { "rectangle": { "low": { "latitude": 40.477398, "longitude": -74.259087 }, "high": { "latitude": 40.91618, "longitude": -73.70018 } } }
- إذا كان
-
الأصل
نقطة المصدر التي يتم من خلالها احتساب المسافة المستقيمة إلى الوجهة (يتم عرضها على النحو التالي:
distanceMeters
). في حال حذف هذه القيمة ، لن يتم عرض المسافة المستقيمة. يجب تحديدها على النحو التالي: إحداثيات خط العرض وخط الطول:"origin": { "latitude": 40.477398, "longitude": -74.259087 }
-
regionCode
رمز المنطقة المستخدَم لتنسيق الاستجابة، ويتم تحديده على أنّه قيمة نطاقات المستوى الأعلى لرموز البلدان (ccTLD) مؤلفة من حرفَين. تتطابق معظم رموز نطاقات المستوى الأعلى التي يتم ترميزها حسب البلد (ccTLD)، مع بعض الاستثناءات الملحوظة. على سبيل المثال، نطاق المستوى الأعلى الذي يتم ترميزه حسب البلد (ccTLD) في المملكة المتحدة هو uk. (co.uk). في حين أنّ رمز ISO 3166-1 الخاص بها هو gb (من الناحية التقنية، تشير وحدة "المملكة المتحدة لبريطانيا العظمى وأيرلندا الشمالية").
إذا حدّدت رمز منطقة غير صالح، ستعرض واجهة برمجة التطبيقات الخطأ
INVALID_ARGUMENT
. يمكن أن تؤثّر المَعلمة في النتائج استنادًا إلى القانون الساري. -
sessionToken
علامات الجلسات هي سلاسل ينشئها المستخدمون وتتتبّع طلبات الإكمال التلقائي (الجديدة) على أنّها "جلسات". تستخدِم ميزة "الإكمال التلقائي (جديد)" الرموز المميّزة للجلسات بهدف تجميع مراحل الطلب والاختيار في عملية بحث الإكمال التلقائي للمستخدِم في جلسة منفصلة لأغراض الفوترة. لمزيد من المعلومات، يُرجى الاطّلاع على رموز الجلسات.
أمثلة على ميزة "الإكمال التلقائي" (جديد)
حصر البحث على منطقة باستخدام locationRestriction
locationRestriction
تحدّد المنطقة التي سيتم البحث فيها. ولا يتم عرض النتائج خارج المنطقة المحدّدة. في المثال التالي، يتم استخدام locationRestriction
لتقييد
الطلب على دائرة نصف قطرها 5, 000 متر وتتمركز في سان فرانسيسكو:
curl -X POST -d '{ "input": "Art museum", "locationRestriction": { "circle": { "center": { "latitude": 37.7749, "longitude": -122.4194 }, "radius": 5000.0 } } }' \ -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \ https://places.googleapis.com/v1/places:autocomplete
يتم تضمين جميع النتائج من المناطق المحدّدة في مصفوفة suggestions
:
{ "suggestions": [ { "placePrediction": { "place": "places/ChIJkQQVTZqAhYARHxPt2iJkm1Q", "placeId": "ChIJkQQVTZqAhYARHxPt2iJkm1Q", "text": { "text": "Asian Art Museum, Larkin Street, San Francisco, CA, USA", "matches": [ { "startOffset": 6, "endOffset": 16 } ] }, "structuredFormat": { "mainText": { "text": "Asian Art Museum", "matches": [ { "startOffset": 6, "endOffset": 16 } ] }, "secondaryText": { "text": "Larkin Street, San Francisco, CA, USA" } }, "types": [ "establishment", "museum", "point_of_interest" ] } }, { "placePrediction": { "place": "places/ChIJI7NivpmAhYARSuRPlbbn_2w", "placeId": "ChIJI7NivpmAhYARSuRPlbbn_2w", "text": { "text": "de Young Museum, Hagiwara Tea Garden Drive, San Francisco, CA, USA", "matches": [ { "endOffset": 15 } ] }, "structuredFormat": { "mainText": { "text": "de Young Museum", "matches": [ { "endOffset": 15 } ] }, "secondaryText": { "text": "Hagiwara Tea Garden Drive, San Francisco, CA, USA" } }, "types": [ "establishment", "point_of_interest", "tourist_attraction", "museum" ] } }, /.../ ] }
يمكنك أيضًا استخدام locationRestriction
لحصر عمليات البحث على إطار عرض مستطيل. يحدّد المثال التالي الطلب بوسط مدينة سان فرانسيسكو:
curl -X POST -d '{ "input": "Art museum", "locationRestriction": { "rectangle": { "low": { "latitude": 37.7751, "longitude": -122.4219 }, "high": { "latitude": 37.7955, "longitude": -122.3937 } } } }' \ -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \ https://places.googleapis.com/v1/places:autocomplete
تتضمّن النتائج مصفوفة suggestions
:
{ "suggestions": [ { "placePrediction": { "place": "places/ChIJkQQVTZqAhYARHxPt2iJkm1Q", "placeId": "ChIJkQQVTZqAhYARHxPt2iJkm1Q", "text": { "text": "Asian Art Museum, Larkin Street, San Francisco, CA, USA", "matches": [ { "startOffset": 6, "endOffset": 16 } ] }, "structuredFormat": { "mainText": { "text": "Asian Art Museum", "matches": [ { "startOffset": 6, "endOffset": 16 } ] }, "secondaryText": { "text": "Larkin Street, San Francisco, CA, USA" } }, "types": [ "point_of_interest", "museum", "establishment" ] } }, { "placePrediction": { "place": "places/ChIJyQNK-4SAhYARO2DZaJleWRc", "placeId": "ChIJyQNK-4SAhYARO2DZaJleWRc", "text": { "text": "International Art Museum of America, Market Street, San Francisco, CA, USA", "matches": [ { "startOffset": 14, "endOffset": 24 } ] }, "structuredFormat": { "mainText": { "text": "International Art Museum of America", "matches": [ { "startOffset": 14, "endOffset": 24 } ] }, "secondaryText": { "text": "Market Street, San Francisco, CA, USA" } }, "types": [ "museum", "point_of_interest", "tourist_attraction", "art_gallery", "establishment" ] } } ] }
توجيه البحث نحو منطقة معيّنة باستخدام مَعلمة locationBias
مع locationBias
، يعمل الموقع الجغرافي كمؤشر، ما يعني أنّه يمكن عرض نتائج حول
الموقع الجغرافي المحدّد، بما في ذلك النتائج خارج المنطقة المحدّدة. في المثال التالي،
يتم توجيه الطلب إلى وسط مدينة سان فرانسيسكو:
curl -X POST -d '{ "input": "Amoeba", "locationBias": { "circle": { "center": { "latitude": 37.7749, "longitude": -122.4194 }, "radius": 5000.0 } } }' \ -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \ https://places.googleapis.com/v1/places:autocomplete
تتضمّن النتائج الآن المزيد من العناصر، بما في ذلك النتائج خارج نطاق 5, 000 متر:
{ "suggestions": [ { "placePrediction": { "place": "places/ChIJ5YQQf1GHhYARPKG7WLIaOko", "placeId": "ChIJ5YQQf1GHhYARPKG7WLIaOko", "text": { "text": "Amoeba Music, Haight Street, San Francisco, CA, USA", "matches": [ { "endOffset": 6 } ] }, "structuredFormat": { "mainText": { "text": "Amoeba Music", "matches": [ { "endOffset": 6 } ] }, "secondaryText": { "text": "Haight Street, San Francisco, CA, USA" } }, "types": [ "electronics_store", "point_of_interest", "store", "establishment", "home_goods_store" ] } }, { "placePrediction": { "place": "places/ChIJr7uwwy58hYARBY-e7-QVwqw", "placeId": "ChIJr7uwwy58hYARBY-e7-QVwqw", "text": { "text": "Amoeba Music, Telegraph Avenue, Berkeley, CA, USA", "matches": [ { "endOffset": 6 } ] }, "structuredFormat": { "mainText": { "text": "Amoeba Music", "matches": [ { "endOffset": 6 } ] }, "secondaryText": { "text": "Telegraph Avenue, Berkeley, CA, USA" } }, "types": [ "electronics_store", "point_of_interest", "establishment", "home_goods_store", "store" ] } }, ... ] }
يمكنك أيضًا استخدام locationBias
لتقييد عمليات البحث على مجال عرض مستطيل. يحدّد المثال التالي الطلب بوسط مدينة سان فرانسيسكو:
curl -X POST -d '{ "input": "Amoeba", "locationBias": { "rectangle": { "low": { "latitude": 37.7751, "longitude": -122.4219 }, "high": { "latitude": 37.7955, "longitude": -122.3937 } } } }' \ -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \ https://places.googleapis.com/v1/places:autocomplete
على الرغم من أنّ نتائج البحث ضمن إطار العرض المستطيل تظهر في الاستجابة، إلا أنّ بعض النتائج
تكون خارج الحدود المحدّدة بسبب الانحياز. يتم تضمين النتائج أيضًا في المصفوفة suggestions
:
{ "suggestions": [ { "placePrediction": { "place": "places/ChIJ5YQQf1GHhYARPKG7WLIaOko", "placeId": "ChIJ5YQQf1GHhYARPKG7WLIaOko", "text": { "text": "Amoeba Music, Haight Street, San Francisco, CA, USA", "matches": [ { "endOffset": 6 } ] }, "structuredFormat": { "mainText": { "text": "Amoeba Music", "matches": [ { "endOffset": 6 } ] }, "secondaryText": { "text": "Haight Street, San Francisco, CA, USA" } }, "types": [ "point_of_interest", "store", "establishment" ] } }, { "placePrediction": { "place": "places/ChIJr7uwwy58hYARBY-e7-QVwqw", "placeId": "ChIJr7uwwy58hYARBY-e7-QVwqw", "text": { "text": "Amoeba Music, Telegraph Avenue, Berkeley, CA, USA", "matches": [ { "endOffset": 6 } ] }, "structuredFormat": { "mainText": { "text": "Amoeba Music", "matches": [ { "endOffset": 6 } ] }, "secondaryText": { "text": "Telegraph Avenue, Berkeley, CA, USA" } }, "types": [ "point_of_interest", "store", "establishment" ] } }, { "placePrediction": { "place": "places/ChIJRdmfADq_woARYaVhnfQSUTI", "placeId": "ChIJRdmfADq_woARYaVhnfQSUTI", "text": { "text": "Amoeba Music, Hollywood Boulevard, Los Angeles, CA, USA", "matches": [ { "endOffset": 6 } ] }, "structuredFormat": { "mainText": { "text": "Amoeba Music", "matches": [ { "endOffset": 6 } ] }, "secondaryText": { "text": "Hollywood Boulevard, Los Angeles, CA, USA" } }, "types": [ "point_of_interest", "store", "establishment" ] } }, /.../ ] }
استخدام includedPrimaryTypes
استخدِم مَعلمة includedPrimaryTypes
لتحديد ما يصل إلى خمس قِيَم من الأنواع من
الجدول أ أو
الجدول ب
أو من (regions)
فقط أو من
(cities)
فقط. يجب أن يتطابق مكان مع إحدى قيم
النوع الأساسي المحدّدة ليتم تضمينها في الردّ.
في المثال التالي، يمكنك تحديد سلسلة input
من "كرة القدم" واستخدام المَعلمة includedPrimaryTypes
لحصر النتائج بمؤسسات من النوع "sporting_goods_store"
:
curl -X POST -d '{ "input": "Soccer", "includedPrimaryTypes": ["sporting_goods_store"], "locationBias": { "circle": { "center": { "latitude": 37.7749, "longitude": -122.4194 }, "radius": 500.0 } } }' \ -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \ https://places.googleapis.com/v1/places:autocomplete
في حال حذف المَعلمة includedPrimaryTypes
، يمكن أن تتضمّن النتائج
مؤسسات من نوع لا تريده، مثل "athletic_field"
.
طلب عبارات بحث مقترحة
ولا يتم عرض طلبات البحث المقترحة بشكل تلقائي. استخدِم مَعلمة includeQueryPredictions
request لإضافة توقّعات طلبات البحث إلى الردّ. على سبيل المثال:
curl -X POST -d '{ "input": "Amoeba", "includeQueryPredictions": true, "locationBias": { "circle": { "center": { "latitude": 37.7749, "longitude": -122.4194 }, "radius": 5000.0 } } }' \ -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \ https://places.googleapis.com/v1/places:autocomplete
تحتوي المصفوفة suggestions
الآن على توقّعات البحث عن الأماكن وعبارات البحث المقترحة
كما هو موضّح أعلاه في القسم لمحة عن الردّ. يتضمّن كل عبارة بحث مقترحة
حقل text
الذي يحتوي على سلسلة بحث نصية مقترَحة. يمكنك تقديم طلب البحث النصي (جديد) للحصول على مزيد من المعلومات حول أي من عبارات البحث المقترحة المعروضة.
استخدام نقطة الانطلاق
في هذا المثال، أدرِج origin
في الطلب باعتبارها إحداثيات خط الطول والعرض.
عند تضمين origin
، تتضمّن واجهة برمجة التطبيقات حقل distanceMeters
في الردّ الذي يحتوي على المسافة المستقيمة من origin
إلى الوجهة.
يضبط هذا المثال نقطة المصدر على وسط مدينة سان فرانسيسكو:
curl -X POST -d '{ "input": "Amoeba", "origin": { "latitude": 37.7749, "longitude": -122.4194 }, "locationRestriction": { "circle": { "center": { "latitude": 37.7749, "longitude": -122.4194 }, "radius": 5000.0 } } }' \ -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \ https://places.googleapis.com/v1/places:autocomplete
يتضمن الرد الآن distanceMeters
:
{ "suggestions": [ { "placePrediction": { "place": "places/ChIJ5YQQf1GHhYARPKG7WLIaOko", "placeId": "ChIJ5YQQf1GHhYARPKG7WLIaOko", "text": { "text": "Amoeba Music, Haight Street, San Francisco, CA, USA", "matches": [ { "endOffset": 6 } ] }, "structuredFormat": { "mainText": { "text": "Amoeba Music", "matches": [ { "endOffset": 6 } ] }, "secondaryText": { "text": "Haight Street, San Francisco, CA, USA" } }, "types": [ "home_goods_store", "establishment", "point_of_interest", "store", "electronics_store" ], "distanceMeters": 3012 } } ] }
جرّب الآن
يتيح لك "مستكشف واجهة برمجة التطبيقات" إنشاء نماذج طلبات لكي تتمكّن من التعرّف على واجهة برمجة التطبيقات وخياراتها.
- انقر على رمز واجهة برمجة التطبيقات على يسار الصفحة.
- يمكنك اختياريًا توسيع عرض المَعلمات العادية وضبط
مَعلمة
fields
على قناع الحقل. - يمكنك اختياريًا تعديل نص الطلب.
- انقر على الزر تنفيذ. في النافذة المنبثقة، اختَر الحساب الذي تريد استخدامه لتقديم الطلب.
في لوحة "مستكشف واجهات برمجة التطبيقات"، انقر على رمز التوسيع، ، لتوسيع نافذة "مستكشف واجهات برمجة التطبيقات".