لقد استغرق الأمر مني يومين لاستخدام واجهة برمجة تطبيقات Google لإنشاء مثل هذا الشيء الصغير. في الواقع، كود التنفيذ الفعلي ليس كثيرًا، فقط عشرات الأسطر. العمل الذي يستغرق وقتًا طويلاً هو فهم وظائف كل واجهة برمجة تطبيقات وتصحيح أخطاء JavaScript.
دعونا نقدم بإيجاز بعض الوظائف التي استخدمتها هذه المرة.
• مُنشئ google.search.LocalSearch()
يؤدي هذا في الواقع إلى إنشاء خدمة LocalSearch. يتم استخدام هذه الخدمة، مثل الخدمات الأخرى (الأخبار والمدونة والويب). تحدد هذه الخدمات إمكانيات SearchControl.
•ضبط نوع هيكل البحث للبحث المحلي
localSearch.setRestriction(google.search.Search.RESTRICT_TYPE, google.search.LocalSearch.TYPE_KMLONLY_RESULTS)
يوضح هذا أنه لا توجد نتائج أعمال في نتائج البحث، فقط نتائج KML والرمز الجغرافي.
• تعيين نطاق البحث للبحث المحلي
localSearch.setCenterPoint("بكين");
•google.search.SearcherOptions()
قم بتعيين خصائص خدمة البحث (الباحث) واستخدمها كسمة لـ SearchControl.addSearcher(). تتوفر الخيارات التالية:
1. قم بضبط طريقة عرض النتائج
•searcherOptions.setExpandMode(google.search.SearchControl.EXPAND_MODE_OPEN);
2. النص المعروض عند عدم وجود نتائج بحث في الملف الشخصي
• searcherOptions.setNoResultsString(google.search.SearchControl.NO_RESULTS_DEFAULT_STRING);
3. قم بتعيين الموقع الذي سيتم عرض النتائج فيه
•searcherOptions.setRoot(resultCanvas);
•new google.search.DrawOptions();
ضبط كيفية عرض التحكم في بحث Google
•drawOptions.setDrawMode(google.search.SearchControl.DRAW_MODE_TABBED)
اضبط وضع العرض على الوضع المبوب، أي أنه يتم عرض كل باحث مثل علامات التبويب
•drawOptions.setInput(document.getElementById("input"));
قم بتغيير القيمة الافتراضية لمربع إدخال البحث إلى مربع إدخال محدد من قبل المستخدم
قم بإرجاع نتائج البحث المحددة بواسطة المستخدم ككائن GResult مطابق، على سبيل المثال، GResult الخاص بـ LocalSearch هو GLocalResult.
لقد استغرق الأمر وقتًا طويلاً للعثور على هذا الخيار. هناك سببان: أولاً، هناك عدد قليل من الأشخاص الذين يستخدمونه وهناك عدد قليل من المستندات. ثانيًا، استغرق الأمر مني وقتًا طويلاً لفهم الوثيقة الإنجليزية التي قرأتها، وفي الواقع، أعتقد أن قراءة الوثيقة الصينية تستغرق وقتًا أطول.
•searchControl.setOnKeepCallback(this, LocalSearchKeepHandler);
بالمناسبة، الصق رمز LocalSearchKeepHandler، الذي تكون معلمته هي كائن GResult الذي يتم إرجاعه تلقائيًا.
انسخ رمز الكود كما يلي:
وظيفة LocalSearchKeepHandler(نتيجة) {
var from = document.getElementById("from");
تنبيه("result.tilte =" + result.title);
from.value = ProcessString(result.title);
تنبيه("from.value = "+ from.value);
// تنبيه (نتيجة. العنوان)؛
}
ما عليك سوى نشر هذا الرمز بالكامل لتسهيل القراءة.
انسخ رمز الكود كما يلي:
google.load("search", "1", {"language": "zh-CN"});
تهيئة الوظيفة () {
// كائن البحث المحلي المستخدم لإنشاء خدمة بحث محلية للخرائط
var localSearch = new google.search.LocalSearch();
// تقييد نتائج البحث المحلي على نتائج KML والرمز الجغرافي فقط، وليس نتائج الأعمال
localSearch.setRestriction(google.search.Search.RESTRICT_TYPE, google.search.LocalSearch.TYPE_KMLONLY_RESULTS);
// قم بتعيين نقطة مركز البحث المحلي
localSearch.setCenterPoint("بكين");
// يتعلق الأمر بالبحث المحلي، والذي يُستخدم لتعيين مكان ظهور النتائج، وهو معلمة من الخيارات
var resultCanvas = document.getElementById("resultCanvas");
// الخيارات: فتح، جذر بديل
var searcherOptions = new google.search.SearcherOptions();
// عرض العديد من النتائج
searcherOptions.setExpandMode(google.search.SearchControl.EXPAND_MODE_OPEN);
// لا توجد رسالة نتائج
searcherOptions.setNoResultsString(google.search.SearchControl.NO_RESULTS_DEFAULT_STRING);
//options.setDrawMode(google.search.SearchControl.DRAW_MODE_TABBED);//web, local... في عرض علامة التبويب
searcherOptions.setRoot(resultCanvas);//إظهار النتائج في مكان آخر--<div id="resultCanvas">
// كائن SearchControl المستخدم لإنشاء خدمة بحث تتضمن خدمة بحث محلية
var searchControl = new google.search.SearchControl(null);
searchControl.addSearcher(localSearch, searcherOptions);
searchControl.addSearcher(new google.search.WebSearch());
searchControl.addSearcher(new google.search.NewsSearch());
searchControl.addSearcher(new google.search.BlogSearch());
// ارسم الخيارات واضبطها على عرض مبوب،
var drawOptions = new google.search.DrawOptions();
drawOptions.setDrawMode(google.search.SearchControl.DRAW_MODE_TABBED)
// اجعل التحكم في البحث يُرجع نتيجة: GResult
searchControl.setOnKeepCallback(this, LocalSearchKeepHandler);// الاحتفاظ بنتيجة البحث
// يُستخدم هذا الخيار لتعيين موضع مربع البحث في شجرة DOM.
//drawOptions.setSearchFormRoot(document.getElementById("drawOptions"));
// اضبط مربع الإدخال على عنصر محدد من قبل المستخدم
//drawOptions.setInput(document.getElementById("input"));
// اطلب من مربع البحث أن يرسم نفسه ويخبره بمكان إرفاقه
//searchControl.draw(document.getElementById("searchBox"), drawOptions);// هنا قمت بتغيير العنوان والعنوان للبحث، مكان جديد
// مربع إدخال محدد بواسطة مستخدم آخر
drawOptions.setInput(document.getElementById("input2"));
searchControl.draw();
/** الرموز أدناه تتعلق بواجهة برمجة تطبيقات Google Ajax Map Search
// يُستخدم مقطع الكود هذا لإضافة شريط جانبي لعرض نتائج البحث
// أتساءل لماذا لا يوجد "var" هنا
optinos = كائن جديد ()؛
options.resultList = resultCanvas;
options.resultFormat = "multi-line1";
var lsc2 = new google.elements.LocalSearch(options);
Map.addControl(lsc2, new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(-282, -2)));
*/
}
google.setOnLoadCallback(initialize);