يمكن استخدام ميزة "الإكمال التلقائي لطلب البحث" (القديمة) لتقديم عبارة بحث مقترَحة لعمليات البحث الجغرافي المستندة إلى النص، وذلك من خلال عرض طلبات البحث المقترَحة أثناء الكتابة.
طلبات Query Autocomplete (Legacy)
تُعدّ خدمة "الإكمال التلقائي لطلبات البحث" (الإصدار القديم) جزءًا من Places API (الإصدار القديم) وتشارك مفتاح واجهة برمجة التطبيقات والحصة مع Places API (الإصدار القديم).
تتيح لك ميزة "الإكمال التلقائي لطلبات البحث" (القديمة) إضافة عبارات بحث مقترَحة جغرافية فورية إلى تطبيقك. بدلاً من البحث عن موقع جغرافي محدّد، يمكن للمستخدم كتابة طلب بحث فئوي، مثل "بيتزا بالقرب من القاهرة"، وستعرض الخدمة قائمة بطلبات البحث المقترَحة التي تتطابق مع السلسلة. بما أنّ ميزة "الإكمال التلقائي لطلب البحث" (القديمة) يمكنها مطابقة كل من الكلمات الكاملة والسلاسل الفرعية، يمكن للتطبيقات إرسال طلبات البحث أثناء كتابة المستخدم لتقديم توقّعات فورية.
طلب "الإكمال التلقائي لطلب البحث" (القديم) هو عنوان URL يستخدم HTTP بالشكل التالي:
https://maps.googleapis.com/maps/api/place/queryautocomplete/output?parameters
حيث قد تكون قيمة output إما json أو xml.
يجب توفير مَعلمات معيّنة لبدء طلب "الإكمال التلقائي لطلب البحث" (القديم).
كما هو معتاد في عناوين URL، يتم الفصل بين جميع المَعلمات باستخدام رمز العطف اللاتيني (&). في ما يلي قائمة بالمَعلمات وقيمها المحتملة.
المعلمات المطلوبة
-
إدخال
سلسلة النص المطلوب البحث عنها ستعرض خدمة "الإكمال التلقائي للأماكن" المطابقات المرشحة استنادًا إلى هذه السلسلة وسترتّب النتائج استنادًا إلى مدى صلتها بالموضوع.
المعلمات الاختيارية
-
language
اللغة التي سيتم عرض النتائج بها
- اطّلِع على قائمة اللغات المتاحة. تعدّل Google اللغات المتاحة بشكل متكرر، لذا قد لا تكون هذه القائمة شاملة.
-
في حال عدم توفير
language، تحاول واجهة برمجة التطبيقات استخدام اللغة المفضّلة كما هو محدّد في العنوانAccept-Language. - تبذل واجهة برمجة التطبيقات قصارى جهدها لتوفير عنوان شارع يمكن قراءته لكل من المستخدم والسكان المحليين. لتحقيق هذا الهدف، تعرض عناوين الشوارع باللغة المحلية، وتتم كتابتها بأحرف أبجدية أخرى يمكن للمستخدم قراءتها إذا لزم الأمر، مع مراعاة اللغة المفضّلة. ويتم عرض جميع العناوين الأخرى باللغة المفضّلة. يتم عرض جميع مكوّنات العنوان باللغة نفسها، والتي يتم اختيارها من المكوّن الأول.
- إذا لم يكن الاسم متاحًا باللغة المفضّلة، تستخدم واجهة برمجة التطبيقات أقرب نتيجة مطابقة.
- تؤثر اللغة المفضّلة بشكل بسيط في مجموعة النتائج التي تختار واجهة برمجة التطبيقات عرضها، وفي ترتيب عرضها. تفسّر أداة الترميز الجغرافي الاختصارات بشكل مختلف حسب اللغة، مثل اختصارات أنواع الشوارع أو المرادفات التي قد تكون صالحة في لغة واحدة ولكن ليس في لغة أخرى. على سبيل المثال، utca وtér هما مرادفان لكلمة "شارع" باللغة الهنغارية.
-
الموقع
تحدّد هذه السمة نقطة، كإحداثيات
latitude,longitude، للبحث حولها. تستخدم خدمة "الأماكن" الموقع الجغرافي لتوجيه البحث نحو تفضيل عرض النتائج في المنطقة المحدّدة من خلالlocationوradius، وقد يستمر عرض النتائج خارج المنطقة المحدّدة.يمكن إلغاء المَعلمةlocationإذا كانqueryيحتوي على موقع جغرافي صريح مثلMarket in Barcelona. قد يؤثر استخدام علامات الاقتباس حول طلب البحث أيضًا في الأهمية الممنوحة لـlocationوradius. -
اقتطاع
موضع الحرف الأخير في عبارة الإدخال الذي تستخدمه الخدمة لمطابقة عبارات البحث المقترَحة. على سبيل المثال، إذا كان المُدخل هو
Googleوالإزاحة هي 3، ستطابق الخدمةGoo. تتم مطابقة السلسلة التي يحدّدها الإزاحة مع الكلمة الأولى في عبارة الإدخال فقط. على سبيل المثال، إذا كانت عبارة الإدخال هيGoogle abcوكانت الإزاحة 3، ستحاول الخدمة المطابقة معGoo abc. وفي حال عدم توفير إزاحة، ستستخدم الخدمة العبارة بأكملها. يجب ضبط الإزاحة بشكل عام على موضع علامة الإقحام النصية. -
نطاق جغرافي
تحدّد المسافة (بالأمتار) التي يتم عرض نتائج الأماكن ضمنها. ويمكنك توجيه النتائج إلى دائرة محدّدة من خلال تمرير مَعلمتَي
locationوradius. يؤدي ذلك إلى توجيه خدمة "الأماكن" إلى تفضيل عرض النتائج ضمن تلك الدائرة، وقد يستمر عرض النتائج خارج المنطقة المحدّدة.سيتم تلقائيًا تثبيت نصف القطر على قيمة قصوى بناءً على نوع البحث والمَعلمات الأخرى.
- الإكمال التلقائي: 50,000 متر
-
Nearby Search:
- مع
keywordأوname: 50,000 متر -
بدون
keywordأوname-
ما يصل إلى 50,000 متر، ويتم تعديلها ديناميكيًا استنادًا إلى كثافة المنطقة،
بشكل مستقل عن المَعلمة
rankby. -
عند استخدام
rankby=distance، لن يتم قبول مَعلمة نصف القطر، وسيؤدي ذلك إلى ظهورINVALID_REQUEST.
-
ما يصل إلى 50,000 متر، ويتم تعديلها ديناميكيًا استنادًا إلى كثافة المنطقة،
بشكل مستقل عن المَعلمة
- مع
- ميزة "الإكمال التلقائي للبحث": 50,000 متر
- البحث النصي: 50,000 متر
أمثلة على ميزة "الإكمال التلقائي لطلب البحث" (الإصدار القديم)
عنوان URL
https://maps.googleapis.com/maps/api/place/queryautocomplete/json ?input=pizza%20near%20par &key=YOUR_API_KEY
curl
curl -L -X GET 'https://maps.googleapis.com/maps/api/place/queryautocomplete/json?input=pizza%20near%20par&key=YOUR_API_KEY'طلب البحث "بيتزا بالقرب من باريس"، مع نتائج باللغة الفرنسية:
عنوان URL
https://maps.googleapis.com/maps/api/place/queryautocomplete/json ?input=pizza%20near%20par &language=fr &key=YOUR_API_KEY
curl
curl -L -X GET 'https://maps.googleapis.com/maps/api/place/queryautocomplete/json?input=pizza%20near%20par&language=fr&key=YOUR_API_KEY'يُرجى العِلم أنّه عليك استبدال مفتاح واجهة برمجة التطبيقات في هذه الأمثلة بمفتاحك الخاص.
استجابة ميزة "الإكمال التلقائي للبحث" (القديمة)
يتم عرض ردود ميزة "الإكمال التلقائي للبحث" (القديمة) بالتنسيق الذي تشير إليه العلامة output ضمن مسار طلب عنوان URL. يتم عرض النتائج أدناه لطلب بحث يتضمّن المَعلمات التالية:
عنوان URL
https://maps.googleapis.com/maps/api/place/queryautocomplete/json ?input=pizza%20near%20par &key=YOUR_API_KEY
curl
curl -L -X GET 'https://maps.googleapis.com/maps/api/place/queryautocomplete/json?input=pizza%20near%20par&key=YOUR_API_KEY'JSON
{ "predictions": [ { "description": "pizza near Paris, France", "matched_substrings": [{ "length": 5, "offset": 0 }, { "length": 3, "offset": 11 }], "structured_formatting": { "main_text": "pizza", "main_text_matched_substrings": [{ "length": 5, "offset": 0 }], "secondary_text": "near Paris, France", "secondary_text_matched_substrings": [{ "length": 3, "offset": 5 }], }, "terms": [ { "offset": 0, "value": "pizza" }, { "offset": 6, "value": "near" }, { "offset": 11, "value": "Paris" }, { "offset": 18, "value": "France" }, ], }, { "description": "pizza near Pari Chowk, NRI City, Omega II, Noida, Uttar Pradesh, India", "matched_substrings": [{ "length": 5, "offset": 0 }, { "length": 3, "offset": 11 }], "structured_formatting": { "main_text": "pizza", "main_text_matched_substrings": [{ "length": 5, "offset": 0 }], "secondary_text": "near Pari Chowk, NRI City, Omega II, Noida, Uttar Pradesh, India", "secondary_text_matched_substrings": [{ "length": 3, "offset": 5 }], }, "terms": [ { "offset": 0, "value": "pizza" }, { "offset": 6, "value": "near" }, { "offset": 11, "value": "Pari Chowk" }, { "offset": 23, "value": "NRI City" }, { "offset": 33, "value": "Omega II" }, { "offset": 43, "value": "Noida" }, { "offset": 50, "value": "Uttar Pradesh" }, { "offset": 65, "value": "India" }, ], }, { "description": "pizza near Disneyland Park, Disneyland Drive, Anaheim, CA, USA", "matched_substrings": [{ "length": 5, "offset": 0 }, { "length": 3, "offset": 22 }], "structured_formatting": { "main_text": "pizza", "main_text_matched_substrings": [{ "length": 5, "offset": 0 }], "secondary_text": "near Disneyland Park, Disneyland Drive, Anaheim, CA, USA", "secondary_text_matched_substrings": [{ "length": 3, "offset": 16 }], }, "terms": [ { "offset": 0, "value": "pizza" }, { "offset": 6, "value": "near" }, { "offset": 11, "value": "Disneyland Park" }, { "offset": 28, "value": "Disneyland Drive" }, { "offset": 46, "value": "Anaheim" }, { "offset": 55, "value": "CA" }, { "offset": 59, "value": "USA" }, ], }, { "description": "pizza near Cathédrale Notre-Dame de Paris, Parvis Notre-Dame - place Jean-Paul-II, Paris, France", "matched_substrings": [{ "length": 5, "offset": 0 }, { "length": 3, "offset": 36 }], "structured_formatting": { "main_text": "pizza", "main_text_matched_substrings": [{ "length": 5, "offset": 0 }], "secondary_text": "near Cathédrale Notre-Dame de Paris, Parvis Notre-Dame - place Jean-Paul-II, Paris, France", "secondary_text_matched_substrings": [{ "length": 3, "offset": 30 }], }, "terms": [ { "offset": 0, "value": "pizza" }, { "offset": 6, "value": "near" }, { "offset": 11, "value": "Cathédrale Notre-Dame de Paris" }, { "offset": 43, "value": "Parvis Notre-Dame - place Jean-Paul-II" }, { "offset": 83, "value": "Paris" }, { "offset": 90, "value": "France" }, ], }, { "description": "pizza near Paris Beauvais Airport, Route de l'Aéroport, Tillé, France", "matched_substrings": [{ "length": 5, "offset": 0 }, { "length": 3, "offset": 11 }], "structured_formatting": { "main_text": "pizza", "main_text_matched_substrings": [{ "length": 5, "offset": 0 }], "secondary_text": "near Paris Beauvais Airport, Route de l'Aéroport, Tillé, France", "secondary_text_matched_substrings": [{ "length": 3, "offset": 5 }], }, "terms": [ { "offset": 0, "value": "pizza" }, { "offset": 6, "value": "near" }, { "offset": 11, "value": "Paris Beauvais Airport" }, { "offset": 35, "value": "Route de l'Aéroport" }, { "offset": 56, "value": "Tillé" }, { "offset": 63, "value": "France" }, ], }, ], "status": "OK", }
XML
<AutocompletionResponse> <status>OK</status> <prediction> <description>pizza near Paris, France</description> <term> <value>pizza</value> <offset>0</offset> </term> <term> <value>near</value> <offset>6</offset> </term> <term> <value>Paris</value> <offset>11</offset> </term> <term> <value>France</value> <offset>18</offset> </term> <matched_substring> <offset>0</offset> <length>5</length> </matched_substring> <matched_substring> <offset>11</offset> <length>3</length> </matched_substring> <structured_formatting> <description>pizza</description> <subdescription>near Paris, France</subdescription> <description_matched_substring> <offset>0</offset> <length>5</length> </description_matched_substring> <subdescription_matched_substring> <offset>5</offset> <length>3</length> </subdescription_matched_substring> </structured_formatting> </prediction> <prediction> <description>pizza near Pari Chowk, NRI City, Omega II, Noida, Uttar Pradesh, India</description> <term> <value>pizza</value> <offset>0</offset> </term> <term> <value>near</value> <offset>6</offset> </term> <term> <value>Pari Chowk</value> <offset>11</offset> </term> <term> <value>NRI City</value> <offset>23</offset> </term> <term> <value>Omega II</value> <offset>33</offset> </term> <term> <value>Noida</value> <offset>43</offset> </term> <term> <value>Uttar Pradesh</value> <offset>50</offset> </term> <term> <value>India</value> <offset>65</offset> </term> <matched_substring> <offset>0</offset> <length>5</length> </matched_substring> <matched_substring> <offset>11</offset> <length>3</length> </matched_substring> <structured_formatting> <description>pizza</description> <subdescription>near Pari Chowk, NRI City, Omega II, Noida, Uttar Pradesh, India</subdescription> <description_matched_substring> <offset>0</offset> <length>5</length> </description_matched_substring> <subdescription_matched_substring> <offset>5</offset> <length>3</length> </subdescription_matched_substring> </structured_formatting> </prediction> <prediction> <description>pizza near Disneyland Park, Disneyland Drive, Anaheim, CA, USA</description> <term> <value>pizza</value> <offset>0</offset> </term> <term> <value>near</value> <offset>6</offset> </term> <term> <value>Disneyland Park</value> <offset>11</offset> </term> <term> <value>Disneyland Drive</value> <offset>28</offset> </term> <term> <value>Anaheim</value> <offset>46</offset> </term> <term> <value>CA</value> <offset>55</offset> </term> <term> <value>USA</value> <offset>59</offset> </term> <matched_substring> <offset>0</offset> <length>5</length> </matched_substring> <matched_substring> <offset>22</offset> <length>3</length> </matched_substring> <structured_formatting> <description>pizza</description> <subdescription>near Disneyland Park, Disneyland Drive, Anaheim, CA, USA</subdescription> <description_matched_substring> <offset>0</offset> <length>5</length> </description_matched_substring> <subdescription_matched_substring> <offset>16</offset> <length>3</length> </subdescription_matched_substring> </structured_formatting> </prediction> <prediction> <description>pizza near Cathédrale Notre-Dame de Paris, Parvis Notre-Dame - place Jean-Paul-II, Paris, France</description> <term> <value>pizza</value> <offset>0</offset> </term> <term> <value>near</value> <offset>6</offset> </term> <term> <value>Cathédrale Notre-Dame de Paris</value> <offset>11</offset> </term> <term> <value>Parvis Notre-Dame - place Jean-Paul-II</value> <offset>43</offset> </term> <term> <value>Paris</value> <offset>83</offset> </term> <term> <value>France</value> <offset>90</offset> </term> <matched_substring> <offset>0</offset> <length>5</length> </matched_substring> <matched_substring> <offset>36</offset> <length>3</length> </matched_substring> <structured_formatting> <description>pizza</description> <subdescription>near Cathédrale Notre-Dame de Paris, Parvis Notre-Dame - place Jean-Paul-II, Paris, France</subdescription> <description_matched_substring> <offset>0</offset> <length>5</length> </description_matched_substring> <subdescription_matched_substring> <offset>30</offset> <length>3</length> </subdescription_matched_substring> </structured_formatting> </prediction> <prediction> <description>pizza near Paris Beauvais Airport, Route de l'Aéroport, Tillé, France</description> <term> <value>pizza</value> <offset>0</offset> </term> <term> <value>near</value> <offset>6</offset> </term> <term> <value>Paris Beauvais Airport</value> <offset>11</offset> </term> <term> <value>Route de l'Aéroport</value> <offset>35</offset> </term> <term> <value>Tillé</value> <offset>56</offset> </term> <term> <value>France</value> <offset>63</offset> </term> <matched_substring> <offset>0</offset> <length>5</length> </matched_substring> <matched_substring> <offset>11</offset> <length>3</length> </matched_substring> <structured_formatting> <description>pizza</description> <subdescription>near Paris Beauvais Airport, Route de l'Aéroport, Tillé, France</subdescription> <description_matched_substring> <offset>0</offset> <length>5</length> </description_matched_substring> <subdescription_matched_substring> <offset>5</offset> <length>3</length> </subdescription_matched_substring> </structured_formatting> </prediction> </AutocompletionResponse>
عندما تعرض خدمة "الأماكن" نتائج JSON من عملية بحث، فإنّها تضعها
ضمن مصفوفة predictions. حتى إذا لم تعرض الخدمة أي نتائج (مثلاً، إذا كان location بعيدًا)، ستعرض مصفوفة predictions فارغة. تتألف ردود XML من صفر أو أكثر من عناصر <prediction>.
PlacesQueryAutocompleteResponse
| الحقل | مطلوب | النوع | الوصف |
|---|---|---|---|
|
مطلوب | Array<PlaceAutocompletePrediction> |
يحتوي على مصفوفة من عبارات البحث المقترَحة. يمكنك الاطّلاع على PlaceAutocompletePrediction لمزيد من المعلومات. |
|
مطلوب | PlacesAutocompleteStatus |
يحتوي على حالة الطلب، وقد يحتوي على معلومات تصحيح الأخطاء لمساعدتك في تتبُّع سبب تعذُّر الطلب. لمزيد من المعلومات، يُرجى الاطّلاع على PlacesAutocompleteStatus. |
|
اختياري | سلسلة |
عندما تعرض الخدمة رمز حالة غير |
|
اختياري | Array<string> |
عندما تعرض الخدمة معلومات إضافية حول مواصفات الطلب، قد يكون هناك حقل |
PlacesAutocompleteStatus
رموز الحالة التي تعرضها الخدمة
-
OKيشير إلى أنّ طلب البيانات من واجهة برمجة التطبيقات تم بنجاح. -
ZERO_RESULTSتشير إلى أنّ عملية البحث كانت ناجحة ولكن لم يتم عرض أي نتائج. قد يحدث ذلك إذا تم تمرير حدود البحث في موقع جغرافي بعيد. -
INVALID_REQUESTيشير إلى أنّ طلب البيانات من واجهة برمجة التطبيقات غير صالح، ويعود ذلك بشكل عام إلى عدم توفّر المَعلمةinput. -
OVER_QUERY_LIMITيشير إلى أي مما يلي:- لقد تجاوزت الحد المسموح به لعدد الطلبات في الثانية (QPS).
- لم يتم تفعيل الفوترة في حسابك.
- تم تجاوز الرصيد الشهري البالغ 200 دولار أمريكي أو الحد الأقصى للاستخدام الذي فرضته بنفسك.
- لم تعُد طريقة الدفع المقدَّمة صالحة (على سبيل المثال، انتهت صلاحية بطاقة الائتمان).
-
REQUEST_DENIEDيشير إلى رفض طلبك، وذلك بشكل عام بسبب:- لا يتضمّن الطلب مفتاح واجهة برمجة التطبيقات.
- المَعلمة
keyغير صالحة.
-
UNKNOWN_ERRORتشير إلى حدوث خطأ غير معروف.
عندما تعرض خدمة "الأماكن" نتائج JSON من عملية بحث، تضعها ضمن مصفوفة predictions. حتى إذا لم تعرض الخدمة أي نتائج (مثلاً، إذا كان location بعيدًا)، ستعرض مصفوفة predictions فارغة. تتألف ردود XML من عنصر واحد أو أكثر من عناصر <prediction>.
PlaceAutocompletePrediction
| الحقل | مطلوب | النوع | الوصف |
|---|---|---|---|
|
مطلوب | سلسلة |
تحتوي على الاسم الذي يمكن لشخص عادي قراءته للنتيجة المعروضة. بالنسبة إلى نتائج |
|
مطلوب | Array<PlaceAutocompleteMatchedSubstring> |
قائمة بالسلاسل الفرعية التي تصف موقع العبارة التي تم إدخالها في نص نتيجة التوقّع، بحيث يمكن تمييز العبارة إذا أردت ذلك. يمكنك الاطّلاع على PlaceAutocompleteMatchedSubstring لمزيد من المعلومات. |
|
مطلوب | PlaceAutocompleteStructuredFormat |
توفّر هذه السمة نصًا منسَّقًا مسبقًا يمكن عرضه في نتائج الإكمال التلقائي. هذا المحتوى مخصّص للقراءة كما هو، لذا لا تحلّل العنوان المنسَّق برمجيًا. يمكنك الاطّلاع على PlaceAutocompleteStructuredFormat لمزيد من المعلومات. |
|
مطلوب | صفيف<PlaceAutocompleteTerm> |
يحتوي على مصفوفة من العبارات التي تحدّد كل قسم من الوصف الذي تم عرضه (عادةً ما ينتهي قسم من الوصف بفاصلة). يحتوي كل إدخال في المصفوفة على حقل لمزيد من المعلومات، يُرجى الاطّلاع على PlaceAutocompleteTerm. |
|
اختياري | عدد صحيح |
المسافة المستقيمة بالمتر من نقطة الانطلاق لا يتم عرض هذا الحقل إلا للطلبات التي يتم إجراؤها باستخدام |
|
اختياري | سلسلة |
معرّف نصي يحدّد مكانًا بشكل فريد. لاسترداد معلومات عن المكان، أدخِل هذا المعرّف في حقل placeId لطلب بيانات من Places API. لمزيد من المعلومات حول أرقام تعريف الأماكن، يُرجى الاطّلاع على نظرة عامة حول أرقام تعريف الأماكن. |
|
اختياري | سلسلة |
يُرجى الاطّلاع على place_id. |
|
اختياري | Array<string> |
يحتوي على مصفوفة من الأنواع التي تنطبق على هذا المكان. على سبيل المثال:
|
PlaceAutocompleteMatchedSubstring
| الحقل | مطلوب | النوع | الوصف |
|---|---|---|---|
|
مطلوب | الرقم |
طول السلسلة الفرعية المطابقة في نص نتيجة التوقّع |
|
مطلوب | الرقم |
الموقع الجغرافي لبداية السلسلة الفرعية المطابقة في نص نتيجة التوقّع |
PlaceAutocompleteStructuredFormat
| الحقل | مطلوب | النوع | الوصف |
|---|---|---|---|
|
مطلوب | سلسلة |
يحتوي على النص الرئيسي للتوقّع، وهو عادةً اسم المكان. |
|
مطلوب | Array<PlaceAutocompleteMatchedSubstring> |
تحتوي على مصفوفة بقيمة يمكنك الاطّلاع على PlaceAutocompleteMatchedSubstring لمزيد من المعلومات. |
|
اختياري | سلسلة |
يحتوي على النص الثانوي للتوقّع، وهو عادةً الموقع الجغرافي للمكان. |
|
اختياري | Array<PlaceAutocompleteMatchedSubstring> |
تحتوي على مصفوفة بقيمة يمكنك الاطّلاع على PlaceAutocompleteMatchedSubstring لمزيد من المعلومات. |
PlaceAutocompleteTerm
| الحقل | مطلوب | النوع | الوصف |
|---|---|---|---|
|
مطلوب | الرقم |
تحدّد موضع بدء هذا المصطلح في الوصف، ويتم قياسه بأحرف Unicode |
|
مطلوب | سلسلة |
نص المصطلح |