源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Google (Local) Search API的简单使用介绍

  • 时间:2022-01-02 06:03 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Google (Local) Search API的简单使用介绍
花了两天的时间来用Google的API来做这么一个小东西,其实真正的实现代码不是很多,十几行而已。费时间的工作是了解各个API的功能以及调试JavaScript。 [b]下面简单介绍一下这次我用到的几个函数吧。[/b] [b]•构造函数google.search.LocalSearch()[/b] 这其实是创建了一个LocalSearch的Service,这个Service和其他Service(News, Blog, Web)一样,是供SearchControl使用的。这些Service决定了SearchControl的能力。 [b]•设置LocalSearch的搜索结构类型[/b] localSearch.setRestriction(google.search.Search.RESTRICT_TYPE, google.search.LocalSearch.TYPE_KMLONLY_RESULTS) 这说明搜索的结果没有business的结果,只有kml和geocode结果 [b]•设置LocalSearch的搜索范围[/b] localSearch.setCenterPoint("北京"); [b]•google.search.SearcherOptions()[/b] 设置Search Service(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); •new google.search.DrawOptions(); 设置Google Search Control的显示方式 •drawOptions.setDrawMode(google.search.SearchControl.DRAW_MODE_TABBED) 设置显示方式为tabbed方式,即各个Searcher像tabs一样显示 •drawOptions.setInput(document.getElementById("input")); 将搜索输入框的默认值改为用户自定义的一个输入框 将用户选择搜索结果作为一个相应的GResult对象返回,如LocalSearch的GResult就是一个GLocalResult。 这个选项费了我很长时间才找到,原因有二,一是用的人少,文档少。二是我看的英文文档,花了挺长时间才看明白,其实看中文文档要花的时间更长,我觉得。 •searchControl.setOnKeepCallback(this, LocalSearchKeepHandler); 顺便贴上LocalSearchKeepHandler的代码,其参数为自动返回的那个GResult对象。
[u]复制代码[/u] 代码如下:
function LocalSearchKeepHandler(result) {   var from = document.getElementById("from");   alert("result.tilte = " + result.title);   from.value = ProcessString(result.title);   alert("from.value = " + from.value);  // alert(result.title);  }
干脆把这段代码整体贴出,方便阅读
[u]复制代码[/u] 代码如下:
google.load("search", "1", {"language": "zh-CN"});  function initialize() {      //LocalSearch Object used to create a local search service for the maps         var localSearch = new google.search.LocalSearch();          //restrict the local search resutls to kml and geocode results only, no business ones         localSearch.setRestriction(google.search.Search.RESTRICT_TYPE, google.search.LocalSearch.TYPE_KMLONLY_RESULTS);                     // Set the Local Search center point   localSearch.setCenterPoint("北京");    //It's about local search, which are used to set where the results will appear, a param of options   var resultCanvas = document.getElementById("resultCanvas");         //options: open, alternate root   var searcherOptions = new google.search.SearcherOptions();   //show many results   searcherOptions.setExpandMode(google.search.SearchControl.EXPAND_MODE_OPEN);   //no results message   searcherOptions.setNoResultsString(google.search.SearchControl.NO_RESULTS_DEFAULT_STRING);   //options.setDrawMode(google.search.SearchControl.DRAW_MODE_TABBED);//web, local... in a tab show   searcherOptions.setRoot(resultCanvas); //show the results in another place--<div id="resultCanvas">      //SearchControl Object used to create a search service which will include a local search service                     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());   //draw options and set it to a tabbed view,   var drawOptions = new google.search.DrawOptions();   drawOptions.setDrawMode(google.search.SearchControl.DRAW_MODE_TABBED)   //make the searchControl return a result:GResult   searchControl.setOnKeepCallback(this, LocalSearchKeepHandler);//keeping a search result   //this option is used to set the search box position in a DOM tree.   //drawOptions.setSearchFormRoot(document.getElementById("drawOptions"));   //set the input box to a user defined element    //drawOptions.setInput(document.getElementById("input"));   // tell the search box to draw itself and tell it where to attach  // searchControl.draw(document.getElementById("searchBox"), drawOptions);//Here I changed fromaddress and toaddress to search, a new place   //another user defined input box   drawOptions.setInput(document.getElementById("input2"));   searchControl.draw();   /** The codes below is about google Ajax Map Search API   //this code segment is used to add a sidebar to show the results of the search   //I wonder why no 'var' exists here    optinos = new Object();    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);
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部