通過百度地圖的api,可以在地圖上顯示多個標注點,並給所有的標注點實現了帶檢索功能的信息框
<!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"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <title>地圖檢索</title> <!--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.map.baidu.com/api?v=2.0&ak=IDvNBsejl9oqMbPF316iKsXR"></script> <script type="text/javascript" src="http://api.map.baidu.com/library/SearchInfoWindow/1.5/src/SearchInfoWindow_min.js"></script> <link rel="stylesheet" href="http://api.map.baidu.com/library/SearchInfoWindow/1.5/src/SearchInfoWindow_min.css" /> </head> <body> <div class="demo_main" style="width: 70%;height: 90px;margin: 0px auto;"> <div > <a href="#"><img src="#" alt="這里是一個Logo" style="width: 20%;height: 10%"/></a> <hr/> </div> <fieldset class="demo_content"> <div style="min-height: 450px; width: 100%;" id="map"></div> <script type="text/javascript"> var markerArr = [ { title : "安師大分部", point : "118.384668,31.288999", address : "蕪湖市弋江區安徽師范大學", description : "安師大分部位於蕪湖市弋江區安師大附近,為Ejob公司分部", tel : "10086" }, { title : "EasyJob總部", point : "118.361707,31.287487", address : "蕪湖市弋江區 安徽信息工程學院", description : "Ejob大廈位於蕪湖市弋江區魯港附近,為Ejob公司綜合研發及辦公總部", tel : "10086" }, { title : "皖醫分部", point : "118.36742,31.292764", address : "蕪湖市弋江區皖南醫學院", description : "皖醫分部位於蕪湖市弋江區皖醫附近,為Ejob公司分部", tel : "10086" }, { title : "商貿分部", point : "118.37414,31.293319", address : "蕪湖市弋江區安徽商貿職業技術學院", description : "商貿分部位於蕪湖市弋江區商貿附近,為Ejob公司分部", tel : "10086" }, { title : "安機電分部", point : "118.367708,31.287641", address : "蕪湖市弋江區安徽機電職業技術學院", description : "安機電分部位於蕪湖市弋江區安機電附近,為Ejob公司安分部", tel : "10086" } ]; function map_init() { var map = new BMap.Map("map"); // 創建Map實例 var point = new BMap.Point(118.373996, 31.287641); //地圖中心點 map.centerAndZoom(point, 15); // 初始化地圖,設置中心點坐標和地圖級別。 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, isOpen : 1 }); 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.length; 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:12px;lineheight:1.8em;’>" + "</br>簡介:" + markerArr[i].description + "</br>地址:" + markerArr[i].address + "</br> 電話:" + markerArr[i].tel + "</br></p>"; //創建百度樣式檢索信息窗口對象 searchInfoWindow[i] = new BMapLib.SearchInfoWindow(map, info[i], { title : markerArr[i].title, //標題 width : 290, //寬度 height : 100, //高度 panel : "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]); } })(i)); } } //異步調用百度js function map_load() { var load = document.createElement("script"); load.src = "http://api.map.baidu.com/api?v=2.0&ak=IDvNBsejl9oqMbPF316iKsXR&callback=map_init"; document.body.appendChild(load); } window.onload = map_load; </script> </fieldset> </div> </body> </html>
可以修改標注點樣式,代碼如下:
show image
var myIcon = new BMap.Icon("images/logo2.png", new BMap.Size(90,53)); marker[i] = new window.BMap.Marker(point[i],{icon:myIcon});


