Google Map Api和GOOGLE Search Api整合实现代码


Posted in Javascript onJuly 18, 2009

Google Map Api和GOOGLE Search Api整合实现代码

 

       将GOOGLE MAP API 和 GOOGLE Search API 进行整合,我用面向对象的方式写了一个类,通过传一个经纬度进去,自动通过GOOGLE LOCAL SEARCH获取附近的相关信息。比如餐厅、景点等,反过来标到地图上,并可在任意容器内显示。
下面是源码:

/* 
*Author:karry 
*Version:1.0 
*Time:2008-12-01 
*KMapSearch 类 
*把GOOGLE MAP 和LocalSearch结合。只需要传入MAP\经纬度值,就可以把该经纬度附近的相关本地搜索内容取出来,在地图上标注出来,并可以在指定容器显示搜索结果 
*/ (function() { 
var markers= new Array(); 
var KMapSearch=window.KMapSearch= function(map_, opts_) { 
this.opts = { 
container:opts_.container || "divSearchResult", 
keyWord:opts_.keyWord || "餐厅", 
latlng: opts_.latlng || new GLatLng(31, 121), 
autoClear:opts_.autoClear || true, 
icon:opts_.icon || new GIcon(G_DEFAULT_ICON) 
}; 
this.map = map_; 
this.gLocalSearch = new google.search.LocalSearch(); 
this.gLocalSearch.setCenterPoint(this.opts.latlng); 
this.gLocalSearch.setResultSetSize(GSearch.LARGE_RESULTSET); 
this.gLocalSearch.setSearchCompleteCallback(this, function() { 
if (this.gLocalSearch.results) { 
var savedResults = document.getElementById(this.opts.container); 
if (this.opts.autoClear) { 
savedResults.innerHTML = ""; 
} 
for (var i = 0; i < this.gLocalSearch.results.length; i++) { 
savedResults.appendChild(this.getResult(this.gLocalSearch.results[i])); 
} 
} 
}); 
} 
KMapSearch.prototype.getResult = function(result) { 
var container = document.createElement("div"); 
container.className = "list"; 
var myRadom =(new Date()).getTime().toString()+Math.floor(Math.random()*10000); 
container.id=myRadom; 
container.innerHTML = result.title + "<br />地址:" + result.streetAddress; 
this.createMarker(new GLatLng(result.lat, result.lng), result.html,myRadom); 
return container; 
} 
KMapSearch.prototype.createMarker = function(latLng, content) 
{ 
var marker = new GMarker(latLng, {icon:this.opts.icon,title:this.opts.title}); 
GEvent.addListener(marker, "click", function() { 
marker.openInfoWindowHtml(content); 
}); 
markers.push(marker); 
map.addOverlay(marker); 
} 
KMapSearch.prototype.clearAll = function() { 
for (var i = 0; i < markers.length; i++) { 
this.map.removeOverlay(markers[i]); 
} 
markers.length = 0; 
} 
KMapSearch.prototype.execute = function(latLng) { 
if (latLng) { 
this.gLocalSearch.setCenterPoint(latLng); 
} 
this.gLocalSearch.execute(this.opts.keyWord); 
} 
})();

使用方法:
var myIcon = new GIcon(G_DEFAULT_ICON); 
myIcon.image = "canting.png"; 
myIcon.iconSize = new GSize(16, 20); 
myIcon.iconAnchor = new GPoint(8, 20); 
myIcon.shadow = ""; 
var mapSearch = new KMapSearch(map, {container:"cantingContainer",latlng:initPt,icon:myIcon,keyWord:"餐厅"}); 
mapSearch.clearAll(); 
mapSearch.execute();

点击这里查看演示示例:经纬度查询整合本地搜索

Javascript 相关文章推荐
JavaScript 高效运行代码分析
Mar 18 Javascript
jQuery Ajax使用 全解析
Dec 15 Javascript
javascript针对DOM的应用分析(四)
Apr 15 Javascript
jquery遍历之parent()和parents()的区别及parentsUntil()方法详解
Dec 02 Javascript
WordPress中鼠标悬停显示和隐藏评论及引用按钮的实现
Jan 12 Javascript
基于Bootstrap的后台管理面板 Bootstrap Metro Dashboard
Jun 17 Javascript
JS弹出窗口的运用与技巧大全
Nov 01 Javascript
AngularJS Phonecat实例讲解
Nov 21 Javascript
基于slideout.js实现移动端侧边栏滑动特效
Nov 28 Javascript
JavaScript实现的斑马线表格效果【隔行变色】
Sep 18 Javascript
原生JS实现的轮播图功能详解
Aug 06 Javascript
前端性能优化建议
Sep 17 Javascript
比较简单的异步加载JS文件的代码
Jul 18 #Javascript
用showModalDialog弹出页面后,提交表单总是弹出一个新窗口
Jul 18 #Javascript
DOM 基本方法
Jul 18 #Javascript
javascript 全角转换实现代码
Jul 17 #Javascript
JavaScript 创建对象
Jul 17 #Javascript
prototype 学习笔记整理
Jul 17 #Javascript
表单元素事件 (Form Element Events)
Jul 17 #Javascript
You might like
PHP 和 COM
2006/10/09 PHP
使用php重新实现PHP脚本引擎内置函数
2007/03/06 PHP
PHP加密函数 Javascript/Js 解密函数
2013/09/23 PHP
php操作redis中的hash和zset类型数据的方法和代码例子
2014/07/05 PHP
php集成动态口令认证
2016/07/21 PHP
php多进程模拟并发事务产生的问题小结
2018/12/07 PHP
JavaScript语句可以不以;结尾的烦恼
2007/03/08 Javascript
菜鸟学习JavaScript小实验之函数引用
2010/11/17 Javascript
javascript 弹出窗口中是否显示地址栏的实现代码
2011/04/14 Javascript
jQuery之动画ajax事件(实例讲解)
2017/07/18 jQuery
Vue+Flask实现简单的登录验证跳转的示例代码
2018/01/13 Javascript
解决Mac node版本升级失败的问题
2018/05/16 Javascript
Nodejs libuv运行原理详解
2019/08/21 NodeJs
vue 数据操作相关总结
2020/12/17 Vue.js
[57:29]Alliance vs KG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/17 DOTA
Python def函数的定义、使用及参数传递实现代码
2014/08/10 Python
idea创建springMVC框架和配置小文件的教程图解
2018/09/18 Python
pandas中遍历dataframe的每一个元素的实现
2019/10/23 Python
pytorch点乘与叉乘示例讲解
2019/12/27 Python
Python列表list操作相关知识小结
2020/01/29 Python
基于python图像处理API的使用示例
2020/04/03 Python
AmazeUI的下载配置与Helloworld的实现
2020/08/19 HTML / CSS
美国最大的珠宝商之一:Littman Jewelers
2016/11/13 全球购物
英国最大的女士服装零售商:Bonmarché
2017/08/17 全球购物
世界顶级户外运动品牌折扣网站:LeftLane Sports
2019/06/12 全球购物
有影响力的人、名人和艺术家的官方商品:Represent
2019/11/26 全球购物
Three Graces London官网:英国奢侈品牌
2021/03/18 全球购物
大学生年度自我鉴定
2013/10/31 职场文书
《猴子种树》教学反思
2014/02/14 职场文书
党性心得体会
2014/09/03 职场文书
后进基层党组织整改方案
2014/10/25 职场文书
2015年幼儿园中班开学寄语
2015/05/27 职场文书
2015年成本会计工作总结
2015/10/14 职场文书
小学语文课《掌声》教学反思
2016/03/03 职场文书
python实现三次密码验证的示例
2021/04/29 Python
Python中OpenCV实现查找轮廓的实例
2021/06/08 Python