百度地图api 获取标点信息窗口openinfowindow close

原作者博客地址:http://blog.csdn.net/a/article/details/
在此基础上进行了修改:
1、添加闭包,将i传入内部
2、添加地图和卫星模式的切换
3、将单纯信息窗口改为百度样式检索窗口
代码如下:
&!DOCTYPE html PUBLIC &-//W3C//DTD XHTML 1.0 Transitional//EN& &http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&&
&html xmlns=&http://www.w3.org/1999/xhtml&&
&title&百度地图API显示多个标注点带百度样式信息检索窗口的代码&/title&
&!-- 原作博客地址:http://blog.csdn.net/a/article/details/ --&
&!--css--&
&link href=&style/demo.css& rel=&stylesheet& type=&text/css& /&
&!--javascript--&
&script src=&scripts/jquery-1.9.1.js& type=&text/javascript&&&/script&
&script src=&scripts/demo.js& type=&text/javascript&&&/script&
&script type=&text/javascript& src=&http://api./api?v=2.0&ak=IDvNBsejl9oqMbPF316iKsXR&&&/script&
&script type=&text/javascript& src=&http://api./library/SearchInfoWindow/1.5/src/SearchInfoWindow_min.js&&&/script&
&link rel=&stylesheet& href=&http://api./library/SearchInfoWindow/1.5/src/SearchInfoWindow_min.css& /&
&div class=&demo_main&&
&fieldset class=&demo_title&&
百度地图API显示多个标注点带提示的代码
&/fieldset&
&fieldset class=&demo_content&&
&div style=&min-height: 300 width: 100%;& id=&map&&
&script type=&text/javascript&&
var markerArr = [
{ title: &名称:广州火车站&, point: &113..157003&, address: &广东省广州市广州火车站&, tel: &12306& },
{ title: &名称:广州塔(赤岗塔)&, point: &113..113401&, address: &广东省广州市广州塔(赤岗塔) &, tel: && },
{ title: &名称:广州动物园&, point: &113..147267&, address: &广东省广州市广州动物园&, tel: && },
{ title: &名称:天河公园&, point: &113..134274&, address: &广东省广州市天河公园&, tel: && }
function map_init() {
var map = new BMap.Map(&map&); // 创建Map实例
var point = new BMap.Point(113..147267); //地图中心点,广州市
map.centerAndZoom(point, 13); // 初始化地图,设置中心点坐标和地图级别。
map.enableScrollWheelZoom(true); //启用滚轮放大缩小
//地图、卫星、混合模式切换
map.addControl(new BMap.MapTypeControl({mapTypes: [BMAP_NORMAL_MAP, BMAP_SATELLITE_MAP, BMAP_HYBRID_MAP]}));
//向地图中添加缩放控件
var ctrlNav = new window.BMap.NavigationControl({
anchor: BMAP_ANCHOR_TOP_LEFT,
type: BMAP_NAVIGATION_CONTROL_LARGE
map.addControl(ctrlNav);
//向地图中添加缩略图控件
var ctrlOve = new window.BMap.OverviewMapControl({
anchor: BMAP_ANCHOR_BOTTOM_RIGHT,
map.addControl(ctrlOve);
//向地图中添加比例尺控件
var ctrlSca = new window.BMap.ScaleControl({
anchor: BMAP_ANCHOR_BOTTOM_LEFT
map.addControl(ctrlSca);
var point = new Array(); //存放标注点经纬信息的数组
var marker = new Array(); //存放标注点对象的数组
var info = new Array(); //存放提示信息窗口对象的数组
var searchInfoWindow =new Array();//存放检索信息窗口对象的数组
for (var i = 0; i & markerArr. i++) {
var p0 = markerArr[i].point.split(&,&)[0]; //
var p1 = markerArr[i].point.split(&,&)[1]; //按照原数组的point格式将地图点坐标的经纬度分别提出来
point[i] = new window.BMap.Point(p0, p1); //循环生成新的地图点
marker[i] = new window.BMap.Marker(point[i]); //按照地图点坐标生成标记
map.addOverlay(marker[i]);
marker[i].setAnimation(BMAP_ANIMATION_BOUNCE); //跳动的动画              //显示marker的title,marker多的话可以注释掉
var label = new window.BMap.Label(markerArr[i].title, { offset: new window.BMap.Size(20, -10) });
marker[i].setLabel(label);
// 创建信息窗口对象
info[i] = &&p style=’font-size:12lineheight:1.8’&& + &&/br&地址:& + markerArr[i].address + &&/br& 电话:& + markerArr[i].tel + &&/br&&/p&&;
//创建百度样式检索信息窗口对象
searchInfoWindow[i] = new BMapLib.SearchInfoWindow(map, info[i], {
: markerArr[i].title,
height : 55,
: &panel&,
//检索结果面板
enableAutoPan : true,
//自动平移
searchTypes
BMAPLIB_TAB_SEARCH,
//周边检索
BMAPLIB_TAB_TO_HERE,
//到这里去
BMAPLIB_TAB_FROM_HERE //从这里出发
//添加点击事件
marker[i].addEventListener(&click&,
(function(k){
// js 闭包
return function(){
//将被点击marker置为中心
//map.centerAndZoom(point[k], 18);
//在marker上打开检索信息窗口
searchInfoWindow[k].open(marker[k]);
//异步调用百度js
function map_load() {
var load = document.createElement(&script&);
load.src = &http://api./api?v=2.0&ak=IDvNBsejl9oqMbPF316iKsXR&callback=map_init&;
document.body.appendChild(load);
window.onload = map_
&/fieldset&百度拇指医生
&&&普通咨询
您的网络环境存在异常,
请输入验证码
验证码输入错误,请重新输入}

我要回帖

更多关于 map.openinfowindow 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信