Мне потребовалось два дня, чтобы использовать API Google для создания такой маленькой вещи. На самом деле кода реализации немного, всего дюжина строк. Трудоёмкая работа — понимание функций каждого API и отладка JavaScript.
Давайте кратко представим некоторые функции, которые я использовал в этот раз.
• Конструктор google.search.LocalSearch().
Фактически это создает службу LocalSearch. Эта служба, как и другие службы (новости, блоги, Интернет), используется SearchControl. Эти Службы определяют возможности SearchControl.
• Установите тип структуры поиска LocalSearch.
localSearch.setRestriction(google.search.Search.RESTRICT_TYPE, google.search.LocalSearch.TYPE_KMLONLY_RESULTS)
Это показывает, что в результатах поиска нет бизнес-результатов, только результаты KML и геокодирования.
• Установите область поиска LocalSearch.
localSearch.setCenterPoint("Пекин");
•google.search.SearcherOptions()
Установите свойства службы поиска (Searcher) и используйте их в качестве атрибута 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);
• новый google.search.DrawOptions();
Настройка способа отображения Google Search Control
•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");
alert("result.tilte = " + result.title);
from.value = ProcessString(result.title);
alert("from.value = " + from.value);
//оповещение(результат.заголовок);
}
Просто опубликуйте этот код полностью для облегчения чтения.
Скопируйте код кода следующим образом:
google.load("search", "1", {"language": "zh-CN"});
функция инициализировать() {
//Объект LocalSearch, используемый для создания службы локального поиска по картам
вар localSearch = новый google.search.LocalSearch();
//ограничиваем результаты локального поиска только результатами KML и геокодирования, без бизнес-результатов
localSearch.setRestriction(google.search.Search.RESTRICT_TYPE, google.search.LocalSearch.TYPE_KMLONLY_RESULTS);
// Устанавливаем центральную точку локального поиска
localSearch.setCenterPoint("Пекин");
//Речь идет о локальном поиске, который используется для указания места появления результатов, параметр опций
var resultCanvas = document.getElementById("resultCanvas");
//опции: открыть, альтернативный корень
вар searcherOptions = новый 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);//веб, локально... во вкладке
searcherOptions.setRoot(resultCanvas);//покажем результаты в другом месте -- <div id="resultCanvas">
//Объект SearchControl, используемый для создания службы поиска, которая будет включать локальную службу поиска
вар searchControl = новый google.search.SearchControl(null);
searchControl.addSearcher(localSearch, searcherOptions);
searchControl.addSearcher(новый google.search.WebSearch());
searchControl.addSearcher(новый google.search.NewsSearch());
searchControl.addSearcher(новый google.search.BlogSearch());
// параметры рисования и установка вида с вкладками,
вар drawOptions = новый google.search.DrawOptions();
drawOptions.setDrawMode(google.search.SearchControl.DRAW_MODE_TABBED)
//заставляем searchControl возвращать результат: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();
/** Коды ниже относятся к API поиска по картам Google Ajax.
//этот сегмент кода используется для добавления боковой панели для отображения результатов поиска
//Интересно, почему здесь нет 'var'
optinos = новый объект ();
options.resultList = resultCanvas;
options.resultFormat = "многострочный1";
вар lsc2 = новый google.elements.LocalSearch(options);
map.addControl(lsc2, новый GControlPosition(G_ANCHOR_TOP_LEFT, новый GSize(-282, -2)));
*/
}
google.setOnLoadCallback(инициализация);