Google Local Search API 简介

 

Google 提供了一个基于javascript的本地搜索的API,我们可以通过这个API来嵌入到我们的应用程序中,实现搜索的功能。如javascrtip,Flash,java等。

此接口返回的数据为JSON格式的数据,可以方便进行解析。

Google Local Search API首页地址是:

http://code.google.com/intl/zh-CN/apis/maps/documentation/localsearch/index.html

以下是一个简单的例子:

1   < DOCTYPE  html >
2     < html  xmlns ="http://www.w3.org/1999/xhtml" >
3   < head >
4   < meta  http-equiv ="content-type"  content ="text/html; charset=utf-8" />
5   < title > Google Search API Sample </ title >
6   < script  src ="http://www.google.com/jsapi?key=INSERT-YOUR-KEY" ></ script >
7   < script  type ="text/javascript" >
8   //  This code generates a "Raw Searcher" to handle search queries. The Raw Searcher requires
9       //  you to handle and draw the search results manually.
10   google.load( ' search ' ' 1 ' );
11  
12   var  localSearch;
13   function  searchComplete() {
14  
15   //  Check that we got results
16   document.getElementById( ' content ' ).innerHTML  =   '' ;
17   if  (localSearch.results  &&  localSearch.results.length  >   0 ) {
18   for  ( var  i  =   0 ; i  <  localSearch.results.length; i ++ ) {
19  
20   //  Create HTML elements for search results
21   var  p  =  document.createElement( ' p ' );
22   var  a  =  document.createElement( ' a ' );
23   var  b  =  document.createElement( ' b ' );
24   var  c  =  document.createElement( ' c ' );
25   a.href  =  localSearch.results[i].url;
26   a.innerHTML  =  localSearch.results[i].title;
27   b.innerHTML  =   " <br> "   +
28   localSearch.results[i].streetAddress;
29   c.innerHTML  =   " <br> "   +
30   localSearch.results[i].city  +   " , "   +
31   localSearch.results[i].region;
32  
33   //  Append search results to the HTML nodes
34   p.appendChild(a);
35   p.appendChild(b);
36   p.appendChild(c);
37   document.body.appendChild(p);
38   }
39   }
40   }
41  
42   function  onLoad() {
43  
44   //  Create a LocalSearch instance.
45   localSearch  =   new  google.search.LocalSearch();
46  
47   //  Set the Local Search center point
48   localSearch.setCenterPoint( " New York, NY " );
49  
50   //  Set searchComplete as the callback function when a search is complete. The
51   //  localSearch object will have results in it.
52   localSearch.setSearchCompleteCallback( this , searchComplete,  null );
53  
54   //  Specify search quer(ies)
55   localSearch.execute( ' coffee New York NY ' );
56  
57   //  Include the required Google branding.
58   //  Note that getBranding is called on google.search.Search
59   google.search.Search.getBranding( ' branding ' );
60   }
61  
62   //  Set a callback to call your code when the page loads
63   google.setOnLoadCallback(onLoad);
64  
65   </ script >
66   </ head >
67   < body  style ="font-family: Arial;border: 0 none;" >
68   < div  id ="branding"  style ="float: left;" ></ div >< br  />
69   < div  id ="content" > Loading... </ div >
70   </ body >
71   </ html >

其中最重要的是调用这个地址:

http://ajax.googleapis.com/ajax/services/search/local?v=1.0&q=Palm%20Springs%20CA
两个必须的参数如下:
v:版本号,如1.0
q:搜索的关键字
还有一些其它常可以用到的参数:
key:搜索的时候,需要验证的key值,这个你必须到google上去申请
sll:中心坐标,你可以指定一个坐标为中心进行搜索
rsz:每页显示几条数据,值为1-8,当然,每次搜索最大记录数为64
 
 
我们来看看常见的几种语言是如何来使用的:
使用Flash
var service:HTTPService  =   new  HTTPService();
service.url 
=   ' http://ajax.googleapis.com/ajax/services/search/local ' ;
service.request.v 
=   ' 1.0 ' ;
service.request.q 
=   ' Palm%20Springs%20CA ' ;
service.request.key 
=   ' INSERT-YOUR-KEY ' ;
service.resultFormat 
=   ' text ' ;
service.addEventListener(ResultEvent.RESULT, onServerResponse);
service.send();

private  function onServerResponse(event:ResultEvent): void  {
try  {
var json:Object 
=  JSON.decode(event.result as String);
//  now have some fun with the results...
catch (ignored:Error) {
}
}
 
 
使用Java
URL url  =   new  URL( " http://ajax.googleapis.com/ajax/services/search/local? "   +
" v=1.0&q=barack%20obama&key=INSERT-YOUR-KEY&userip=INSERT-USER-IP " );
URLConnection connection 
=  url.openConnection();
connection.addRequestProperty(
" Referer " /*  Enter the URL of your site here  */ );

String line;
StringBuilder builder 
=   new  StringBuilder();
BufferedReader reader 
=   new  BufferedReader( new  InputStreamReader(connection.getInputStream()));
while ((line  =  reader.readLine())  !=   null ) {
builder.append(line);
}

JSONObject json 
=   new  JSONObject(builder.toString());
//  now have some fun with the results...

使用PHP
$url   =   " http://ajax.googleapis.com/ajax/services/search/local? "   +
" v=1.0&q=barack%20obama&key=INSERT-YOUR-KEY&userip=INSERT-USER-IP " ;

//  sendRequest
// note how referer is set manually

$ch   =  curl_init();
curl_setopt(
$ch ,  CURLOPT_URL ,   $url );
curl_setopt(
$ch ,  CURLOPT_RETURNTRANSFER ,   1 );
curl_setopt(
$ch ,  CURLOPT_REFERER ,   /*  Enter the URL of your site here  */ );
$body   =  curl_exec( $ch );
curl_close(
$ch );

//  now, process the JSON string
$json   =  json_decode( $body );
//  now have some fun with the results...

今天先介绍到这里,以后我会更详细的进行简介一下。

下面是我用Flex做的一个示例,结合了Google Map,支持关键字搜索,并可以导出结果。

再次申明,程序只用于学习使用,请不要用于商业。需要安装Flash AIR

下载地址是:http://files.cnblogs.com/liongis/GMapLocalSearch.rar

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值