`
pixy
  • 浏览: 36103 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Google 本地搜索 实例

阅读更多
下午把以前的代码翻出来整理,发现有好多好东西都丢失了 ~~~
下面是一个用于搜索某个位置附近的信息的例子,效果图如下


当时主要是为了得到某地附近的银行的经纬度信息,参考网上的例子写的.
代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
  <head> 
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/> 
    <title>Google 本地搜索</title> 
    <link href="http://www.google.com/uds/css/gsearch.css" type="text/css" rel="stylesheet"/> 
    <style type="text/css"> 
      body *, table *,
      body {font-family: Arial,Sans-serif;font-size: 13px;} 
      h1 {
        font-size : 16px;
        font-weight : bold;
        background-color : rgb(230, 248, 221);
        border-top : 1px solid rgb(128, 198, 90);
        text-align : center;
        margin-bottom : 10px;
        padding-bottom : 4px;
        color : #676767;
      } 
      h1 .tagline,
      h1 a .tagline {
        font-size : 13px;
        font-weight : normal;
        color : #676767;
        text-decoration : underline;
        cursor : pointer;
      } 
      td {vertical-align : top;} 
      td.map {width: 600px;} 
      td.search-control {
        padding-left : 25px;
        width :  350px;
      } 
      #mapDiv {
        border : 1px solid #979797;
        width : 100%;
        height : 400px;
      } 
      .gsc-keeper {display : none;} 
      .gsc-localResult .gsc-keeper {display : block;} 
    </style> 
   <script src="http://ditu.google.com/maps?file=api&amp;v=2&amp;key=&hl=zh-CN" type="text/javascript"></script>
    <script src="http://www.google.com/uds/api?file=uds.js&amp;v=1.0" type="text/javascript"></script> 
    <script type="text/javascript"> 
    var app;
    function OnLoad(keyword) {
      app = new App(keyword);
    } 
    function App(keyword) { 
      this.myMap = null;
      this.markerList = new Array(); 
      // create a map
      this.myMap = new GMap2(document.getElementByIdx_x("mapDiv"));
      this.myMap.addControl(new GSmallMapControl());
 //设置搜索中心点
       this.myMap.setCenter(new GLatLng(22.50128, 113.914619), 14); 
      // Create a search control
      var searchControl = new GSearchControl(); 
      // Add in a full set of searchers
      var localSearch = new GlocalSearch();
      var options = new GsearcherOptions();
      options.setExpandMode(GSearchControl.EXPAND_MODE_OPEN);
      searchControl.addSearcher(localSearch, options);
      searchControl.addSearcher(new GvideoSearch());
 searchControl.setResultSetSize(google.search.Search.LARGE_RESULTSET);
      // Set the Local Search center point
      localSearch.setCenterPoint(this.myMap); 
      // tell the searcher to draw itself and tell it where to attach
      searchControl.draw(document.getElementByIdx_x("searchcontrol")); 
      // tell the search control to call be on start/stop
      searchControl.setSearchCompleteCallback(this, App.prototype.OnSearchComplete);
      searchControl.setSearchStartingCallback(this, App.prototype.OnSearchStarting);
      searchControl.setOnKeepCallback(this, App.prototype.OnKeep, "view on map"); 
      // execute an inital search
      searchControl.execute(keyword);
    } 
    App.prototype.OnSearchComplete = function(sc, searcher) { 
      // if we have local search results, put them on the map
      if ( searcher.results && searcher.results.length > 0) {
        for (var i = 0; i < searcher.results.length; i++) {
          var result = searcher.results[i];
          // if this is a local search result, then proceed...
          if (result.GsearchResultClass == GlocalSearch.RESULT_CLASS ) {
//打印结果坐标点
printResult(result.titleNoFormatting,result.addressLines[1],result.lat,result.lng);
            var markerObject = new Object();
            markerObject.result = result;
            markerObject.latLng = new GLatLng(parseFloat(result.lat), parseFloat(result.lng));
            markerObject.gmarker = new GMarker(markerObject.latLng);
            var clickHandler = method_closure(this, App.prototype.OnMarkerClick, [markerObject]);
            GEvent.bind(markerObject.gmarker, "click", this, clickHandler);
            this.markerList.push(markerObject);
            this.myMap.addOverlay(markerObject.gmarker);
            result.__markerObject__ = markerObject;
          }
        }
        this.OnMarkerClick(this.markerList[0]);
      }
    } 
    App.prototype.OnSearchStarting = function(sc, searcher, query) {
      // close the info window and clear markers
      this.myMap.closeInfoWindow();
      for (var i=0; i < this.markerList.length; i++) {
        var markerObject = this.markerList[i];
        this.myMap.removeOverlay(markerObject.gmarker);
      }
      this.markerList = new Array();
    } 
    App.prototype.OnKeep = function(result) {
      if (result.__markerObject__) {
        markerObject = result.__markerObject__;
        this.OnMarkerClick(markerObject);
      }
    } 
    App.prototype.OnMarkerClick = function(markerObject) {
      this.myMap.closeInfoWindow();
      var htmlNode = markerObject.result.html.cloneNode(true);
      markerObject.gmarker.openInfoWindow(htmlNode);
    } 
    function method_closure(object, method, opt_argArray) {
      return function() {
        return method.apply(object, opt_argArray);
      }
    } 
//搜索
function search(){
var keyword=document.getElementByIdx_x('keyword').value;
OnLoad(keyword);
}
//打印结果
function printResult(title,address,lat,lng){
var str="*"+title+"  "+address+"  "+lat+","+lng+"<br/>";
document.getElementByIdx_x('resulrdiv').innerHTML+=str;
}
    </script> 
  </head> 
  <body>     
    <table> 
<tr>
      <td class="map"><div id="mapDiv">Loading...</div></td> 
      <td class="search-control"><div id="searchcontrol">Loading...</div></td> 
 <td><div id="resulrdiv">结果坐标点:<br/></div></td>
 </tr>
 <tr><div>
<INPUT TYPE="text" id="keyword" NAME="keyword" size="40" value="银行"/><INPUT TYPE="button" VALUE="搜索" ONCLICK="search();">
</div></tr>
    </table> 
  </body> 
</html> 
  • 大小: 35.9 KB
分享到:
评论

相关推荐

    JAVA上百实例源码以及开源项目源代码

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    图书Google Maps API开发大全的各章源码

    书中详细介绍Google Maps API的应用,从开发环境搭建到事件、控件、叠加层、地址解析、本地搜索等,全面介绍,网点管理系统和地图搜索应用实例。

    Google-Books-Search:一个MERN堆栈应用,用于从Google Books API中查询,查看,保存和删除数据。 :books:-源码

    Google图书搜索一个MERN堆栈应用程序,用于查询和保存您的... :floppy_disk: 安装本地实例:将此存储库克隆到您的计算机上,并从根目录运行npm install package.json脚本将为后端安装根级依赖关系,然后它将为cd clien

    程序天下:JavaScript实例自学手册

    第1章 页面特效 ...1.2 页面自动最大化 1.3 页面自动刷新 ...22.10 用JavaScript调用Google AdSense 22.11 Ajax效果:可拖拽的表格 22.12 JavaScript调用Web Service 22.13 用JavaScript实现编码解码 22.14 创建带属性...

    JAVA上百实例源码以及开源项目

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    《程序天下:JavaScript实例自学手册》光盘源码

    22.10 用JavaScript调用Google AdSense 22.11 Ajax效果:可拖拽的表格 22.12 JavaScript调用Web Service 22.13 用JavaScript实现编码解码 22.14 创建带属性的对象 22.15 用prototype实现JavaScript的继承 22.16 ...

    Android入门到精通源代码.

    12.1.1 本地搜索 12.1.2 Web搜索 12.2 Android搜索引擎API简介 12.3 应用实例详解:过滤式搜索 引擎程序 12.3.1 实例分析 12.3.2 实例实现 12.4 Android的GTalk应用开发 12.4.1 GTalk在手机中的应用 12.4.2 Android ...

    android应用开发范例精解

    通过实例介绍了Android UI布局、Android人机界面、手机硬件设备的使用、Android本地存储系统、Android中的数据库、多线程设计、Android传感器、Android游戏开发基础、Android与Internet,以及Google地图服务等内容。...

    多线程双图片源下载jsp

    制作的jsp一个实例,采用google、flickr的image服务,搜索图片,然后保存到本地

    open_source_android_apps:在Github上查找Android应用的源代码并将其与Google Play上的目录条目进行匹配-Android app source code

    所有Android应用程序的元数据都存储在Neo4j图形数据库中,所有GitHub存储库的快照都克隆到本地Gitlab实例中。 背景和动机 这个想法是创建一个开源Android应用程序的数据集,该数据集可以作为研究的基础。 Android...

    everything

    如果不满意Windows自带的搜索工具、Total Commander的搜索、Google 桌面搜索或百度硬盘搜索,如果正在使用或放弃了Locate32,都值得推荐这款体积小巧、免安装、免费、速度极快(比Locate32更快)的文件搜索工具...

    TSP-Solver:用于以多种不同方式以及多核方法解决旅行商问题的 Python 程序

    该项目提供了两种不同的方法来解决 TSP: 构造启发式最远的添加(也是一个朴素的版本) 最近的邻居最近添加本地搜索探索:第一次改进邻里 : 2-Opt 评估:2-opt 的 Delta 评估该项目的结构还能够将本地搜索与建设性...

    python使用xmlrpclib模块实现对百度google的ping功能

    比如WP,它是可以在后台设置ping地址的,只要设置好以后,你发帖子,就会自动的通知搜索引擎,我的博客已经更新了,而今天我用的方法是不通过WP等带有ping功能的博客,自己用python 在本地去ping 搜索引擎,从而达到...

    设置JetBrains Projector以及从任何设备访问Android Studio的指南-Android开发

    设置JetBrains Projector以及从任何设备访问Android Studio的指南。 带有Android Studio的JetBrains Projector指南,用于设置...创建一个AWS账户并登录转到EC2部分,然后选择在AW中为“ Debian”创建新的实例搜索

    d3-example.rar

    d3.js开发demo整理,可直接本地火狐或谷歌浏览器运行。主要包括: 1.力导向图实例 添加用力图边框限制、用力图节点拉动后位置固定、用力图节点图像设置、用力图节点为矩形、用力图节点文字换行、用力图矩形扩展、...

    elk-stack:从守护者分叉的麋鹿栈云形成

    后面的一个或多个实例组成: Logstash 索引器弹性搜索Node.js 应用程序代理基巴纳安全只有 Logstash 索引器和应用程序代理端口在 ELB 上公开,并且所有对 Kibana 或 Elasticsearch 应用程序代理的请求,除了 ELB ...

    react-native-gplaces:React Native库,用于利用Google的地方自动填充功能

    React本地库以利用Google的地方自动填充功能。 安装 注意:必须链接地理位置,在React Native 0.60+中,这是自动完成的。 使用npm npm install --save react-native-gplaces @react-native-community/geolocation ...

    ProjectorAndroidStudio:设置JetBrains Projector以及从任何设备访问Android Studio的指南

    创建一个并登录转到EC2部分,然后选择创建一个新实例在AWS Marketplace中搜索“ Debian”,然后选择最新的Debian发行版(撰写本文时为Debian 10 Buster)选择实例类型,我建议使用至少8Gb RAM的实例类型,最好是更多...

Global site tag (gtag.js) - Google Analytics