花了两天时间才用谷歌的API做这么小的一件事。实际上,真正的实现代码不是很多,而是十几行。耗时的
工作是理解每个API的
功能和调试Javascript。
下面是我使用的一些
函数的简要
介绍。
构造函数google.search.localsearch()
这实际上是一个
本地搜索服务的创新,这是其他服务相同的(
消息,Blog,
网络),使用searchcontrol。这些服务确定searchcontrol能力。
设置本地搜索的搜索结构
类型 localsearch.setrestriction(google.search.search.restrict_type,谷歌搜索,本地搜索。type_kmlonly_results)
这表明,搜索的结果没有结果,只有KML和地理编码结果。
设置的本地搜索的搜索范围
localsearch.setcenterpoint(北京);
google.search.searcheroptions()
设置搜索服务的性质(搜索)作为searchcontrol.addsearcher
属性(),和下面的
选项可以选择:
1。设置结果
显示模式 SearcherOptions.setExpandMode(谷歌搜索。searchcontrol。expand_mode_open);
2。未找到搜索结果时显示的
文件。
searcheroptions.setnoresultsstring(谷歌搜索。searchcontrol。no_results_default_string);
三.设置结果显示的
位置 SearcherOptions.setRoot(resultcanvas);
新的google.search.drawoptions();
设置谷歌搜索控件的显示模式
DrawOptions.setDrawMode(谷歌搜索。searchcontrol。draw_mode_tabbed)
显示模式设置为
选项卡式,也就是说,各种搜索器显示为选项卡。
DrawOptions.setInput(document.getelementbyid(
输入));
将搜索框的
默认值更改为
用户定义的输入框。
用户对搜索结果的选择和相应的gresult对象返回,如局部搜索的gresult是glocalresult。
我花了很长时间才找到这个选项,
原因有两个,一个是人少,
文档少。两个是我读的英文文档,我花了很长时间才看到,事实上,我看
中文文件要花更长的时间。
searchcontrol.setonkeepcallback(今LocalSearchKeepHandler);
由LocalSearchKeepHandler附源码,自动返回的对象的
方法gresult。
复制代码代码如下所示:
功能localsearchkeephandler(结果){
var = document.getelementbyid();
警报(result.tilte =+结果。标题);
from.value = processstring(结果。标题);
警报(from.value =+,值);
警告(结果。标题);
}
简单地把这段代码放出来,很容易读懂。
复制代码代码如下所示:
你好(搜索
函数初始化(){
/ /局部搜索对象用于为地图
创建一个本地搜索服务
var =新google.search.localsearch局部搜索();
/ /限制本地搜索结果为KML和地理编码的结果,没有
localsearch.setrestriction(google.search.search.restrict_type,谷歌搜索,本地搜索。type_kmlonly_results);
本地搜索中心点
localsearch.setcenterpoint(北京);
它是关于本地搜索,用于设置结果的位置。
无功resultcanvas = document.getelementbyid(resultcanvas );
选项:打开,备用根
无功searcheroptions =新google.search.searcheroptions();
显示许多结果
SearcherOptions.setExpandMode(谷歌搜索。searchcontrol。expand_mode_open);
没有结果消息
searcheroptions.setnoresultsstring(谷歌搜索。searchcontrol。no_results_default_string);
/ / options.setdrawmode(谷歌搜索。searchcontrol。draw_mode_tabbed); / /网络,地方…在一个选项卡显示
SearcherOptions.setRoot(resultcanvas); / /显示在另一个地方的结果
/ / searchcontrol对象用于创建一个搜索服务将包括一个
无功searchcontrol =新google.search.searchcontrol(空);
searchcontrol.addsearcher(局部搜索,searcheroptions);
searchcontrol.addsearcher(新google.search.websearch());
searchcontrol.addsearcher(新google.search.newssearch());
searchcontrol.addsearcher(新google.search.blogsearch());
绘制选项并将其设置为选项卡式视图,
无功drawoptions =新google.search.drawoptions();
DrawOptions.setDrawMode(谷歌搜索。searchcontrol。draw_mode_tabbed)
/ /使searchcontrol返回结果:gresult
searchcontrol.setonkeepcallback(今LocalSearchKeepHandler); / /保持搜索结果
此选项用于设置搜索框中的位置。
/ / drawoptions.setsearchformroot(document.getelementbyid(drawoptions ));
将输入框设置为用户定义的元素。
/ / drawoptions.setinput(document.getelementbyid(输入));
告诉搜索框以绘制自己,并告诉它在哪里附加。
/ / searchcontrol.draw(document.getelementbyid(搜索框); / /在这里我变了,drawoptions)FromAddress
解决搜索,一个新的地方
另一个用户定义的输入框
DrawOptions.setInput(document.getelementbyid(输入));
searchcontrol.draw();
下面的代码是关于谷歌ajax地图搜索API的
此代码段用于添加侧栏以显示
/ /我想知道为什么no'var'exists这里
optinos =新的对象();
options.resultlist = resultcanvas;
options.resultformat =multi-line1 ;
VaR LSC2 =新google.elements.localsearch(选项);
map.addcontrol(LSC2,新gcontrolposition(g_anchor_top_left,新的尺寸(282,2)));
* /
}
google.setonloadcallback(初始化);