Butuh waktu dua hari bagi saya untuk menggunakan API Google untuk membuat hal sekecil itu. Faktanya, kode implementasi sebenarnya tidak terlalu banyak, hanya belasan baris. Pekerjaan yang memakan waktu adalah memahami fungsi setiap API dan men-debug JavaScript.
Mari perkenalkan secara singkat beberapa fungsi yang saya gunakan kali ini.
•Konstruktor google.search.LocalSearch()
Ini sebenarnya menciptakan Layanan Pencarian Lokal. Layanan ini, seperti Layanan lainnya (Berita, Blog, Web), digunakan oleh SearchControl. Layanan ini menentukan kemampuan SearchControl.
•Mengatur jenis struktur pencarian LocalSearch
localSearch.setRestriction(google.search.Search.RESTRICT_TYPE, google.search.LocalSearch.TYPE_KMLONLY_RESULTS)
Hal ini menunjukkan bahwa tidak ada hasil bisnis di hasil pencarian, yang ada hanya hasil kml dan geocode.
•Mengatur cakupan pencarian LocalSearch
localSearch.setCenterPoint("Beijing");
•google.penelusuran.SearcherOptions()
Atur properti Layanan Pencarian (Pencari) dan gunakan sebagai atribut SearchControl.addSearcher(). Tersedia opsi berikut:
1. Atur metode tampilan hasil
•searcherOptions.setExpandMode(google.search.SearchControl.EXPAND_MODE_OPEN);
2. Teks ditampilkan ketika tidak ada hasil pencarian di profil
• searcherOptions.setNoResultsString(google.search.SearchControl.NO_RESULTS_DEFAULT_STRING);
3. Atur lokasi dimana hasil ditampilkan
•searcherOptions.setRoot(resultCanvas);
•google.search.DrawOptions();
Setel cara Kontrol Penelusuran Google ditampilkan
•drawOptions.setDrawMode(google.search.SearchControl.DRAW_MODE_TABBED)
Atur mode tampilan ke mode tab, yaitu setiap Pencari ditampilkan seperti tab
•drawOptions.setInput(document.getElementById("input"));
Ubah nilai default kotak masukan pencarian menjadi kotak masukan yang ditentukan pengguna
Mengembalikan hasil pencarian yang dipilih pengguna sebagai objek GResult yang sesuai. Misalnya, GResult dari LocalSearch adalah GLocalResult.
Butuh waktu lama bagi saya untuk menemukan opsi ini. Ada dua alasan. Pertama, hanya sedikit orang yang menggunakannya dan sedikit dokumen. Kedua, saya butuh waktu lama untuk memahami dokumen berbahasa Inggris yang saya baca. Bahkan, menurut saya, butuh waktu lebih lama untuk membaca dokumen berbahasa Mandarin.
•searchControl.setOnKeepCallback(ini, LocalSearchKeepHandler);
Omong-omong, tempelkan kode LocalSearchKeepHandler, yang parameternya adalah objek GResult yang dikembalikan secara otomatis.
Copy kode kodenya sebagai berikut:
fungsi LocalSearchKeepHandler(hasil) {
var dari = document.getElementById("dari");
alert("hasil.tilte = " + hasil.judul);
from.value = ProcessString(hasil.judul);
alert("dari.nilai = " + dari.nilai);
//alert(hasil.judul);
}
Cukup posting kode ini secara keseluruhan agar lebih mudah dibaca.
Copy kode kodenya sebagai berikut:
google.load("pencarian", "1", {"bahasa": "zh-CN"});
fungsi inisialisasi() {
//Objek LocalSearch digunakan untuk membuat layanan pencarian lokal untuk peta
var localSearch = baru google.search.LocalSearch();
//batasi hasil pencarian lokal hanya pada hasil kml dan geocode, bukan hasil bisnis
localSearch.setRestriction(google.search.Search.RESTRICT_TYPE, google.search.LocalSearch.TYPE_KMLONLY_RESULTS);
// Tetapkan titik pusat Pencarian Lokal
localSearch.setCenterPoint("Beijing");
//Ini tentang pencarian lokal, yang digunakan untuk mengatur di mana hasil akan muncul, sebuah parameter opsi
var resultCanvas = document.getElementById("resultCanvas");
//pilihan: terbuka, root alternatif
var searcherOptions = baru google.search.SearcherOptions();
//tampilkan banyak hasil
searcherOptions.setExpandMode(google.search.SearchControl.EXPAND_MODE_OPEN);
//tidak ada pesan hasil
searcherOptions.setNoResultsString(google.search.SearchControl.NO_RESULTS_DEFAULT_STRING);
//options.setDrawMode(google.search.SearchControl.DRAW_MODE_TABBED);//web, lokal... di tampilan tab
searcherOptions.setRoot(resultCanvas);//tampilkan hasilnya di tempat lain--<div id="resultCanvas">
//SearchControl Object digunakan untuk membuat layanan pencarian yang akan mencakup layanan pencarian lokal
var searchControl = baru google.search.SearchControl(null);
searchControl.addSearcher(pencarian lokal, opsi pencarian);
searchControl.addSearcher(google.search.WebSearch() baru);
searchControl.addSearcher(google.search.NewsSearch());
searchControl.addSearcher(google.search.BlogSearch() baru);
//gambar opsi dan atur ke tampilan tab,
var drawOptions = baru google.search.DrawOptions();
drawOptions.setDrawMode(google.search.SearchControl.DRAW_MODE_TABBED)
//membuat searchControl mengembalikan hasil:GResult
searchControl.setOnKeepCallback(ini, LocalSearchKeepHandler);//menyimpan hasil pencarian
//Opsi ini digunakan untuk mengatur posisi kotak pencarian di pohon DOM.
//drawOptions.setSearchFormRoot(document.getElementById("drawOptions"));
//atur kotak input ke elemen yang ditentukan pengguna
//drawOptions.setInput(document.getElementById("input"));
// perintahkan kotak pencarian untuk menggambar dirinya sendiri dan beritahukan di mana harus melampirkannya
//searchControl.draw(document.getElementById("searchBox"), drawOptions);//Di sini saya mengubah dari alamat dan ke alamat untuk mencari, tempat baru
//kotak input lain yang ditentukan pengguna
drawOptions.setInput(document.getElementById("input2"));
searchControl.draw();
/** Kode di bawah ini tentang Google Ajax Map Search API
//segmen kode ini digunakan untuk menambahkan sidebar untuk menampilkan hasil pencarian
//Saya heran mengapa tidak ada 'var' di sini
optinos = Objek baru();
pilihan.resultList = resultCanvas;
options.resultFormat = "multi-baris1";
var lsc2 = google.elements.LocalSearch(pilihan);
map.addControl(lsc2, GControlPosition baru(G_ANCHOR_TOP_LEFT, GSize baru(-282, -2)));
*/
}
google.setOnLoadCallback(inisialisasi);