百度地图的API接口----多地址查询和经纬度
最近看了百度地图的API的接口,正想自己做点小东西,主要是多地址查询和经纬度坐标跟踪,
下面的代码直接另存为html就可以了,目前测试Chrome和360浏览器可以正常使用。
<!DOCTYPE html> <html> <head> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Hello, World</title> <style type="text/css"> html,body{height:100%;margin:0px;padding:0px} .top{height:70px;} .footer{ position:absolute; top:70px; bottom:0px; width:100%; } .search_div_input{ width: 500px; margin:10px 0 0 10px; float: left; height: 50px; } .search_div_btn{ width: 200px; margin:8px 0; float: left; height: 50px; } .search_text { margin: 5px 3px; padding: 3px; font-size: 17px; line-height:26px; height: 26px; width: 96%; border: 1px solid #cdcdcd; } .search_btn{ height: 36px; width: 95px; margin:5px; border: 1px solid #cdcdcd; } /*----------------------*/ .hand{ padding:10px 0; color:#fff; cursor:pointer;} .bg{ background-color:#0099CC} .left_r{ text-align:center; height:100%; width:100%; display:none; } .right_main{height:100%; width:100%; float:left; } textarea { width:98%; height:90%; } .sf{ background-color:#8a2; cursor:pointer; z-index:20; height:40px; line-height:38px; margin-top:-15px; top:50%; left:0px; position:absolute; } .div_border{ background-color:#929; cursor:e-resize; z-index:19; display:block; width:2px; height:100%; position:absolute; } .route{width:100%;float:left;border:1px solid red;height:30px;} .route ul{list-style:none;margin:0px -30px; width:100%;} .route li{float:left;width:60px;line-height:30px;} .route a{display:block;text-align:center;height:30px;} .route a:link{color:#6f6;text-decoration:none;} .route a:visited{color:#666;text-decoration:underline;} .route a:hover{color:#FFF; font-weight:bold;text-decoration:none;} .route ul li i {margin-top:3px;display: inline-block; background-image: url(http://webmap1.map.bdstatic.com/wolfman/static/common/images/ui3/mo_banner_ba37b5d.png); background-repeat: no-repeat; } .bus-tab i{width: 14px;height: 16px;background-position: -1px -192px;} .drive-tab i{width: 16px;height: 15px;background-position: -29px -192px;} .walk-tab i{width: 18px;height: 18px;background-position: -62px -189px;} .bike-tab i{width: 20px;height: 16px;background-position: -83px -216px;} </style> <script type="text/javascript" src="http://api.map.baidu.com/api?v=2&ak=3b4abe8cd9e27790a933cd28cebe6eb4"></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" /> <script> function chk(obj,n) { var chls1=document.getElementById("border").children; var chls2=document.getElementById("tdLeft").children; for(var i=0;i<chls1.length;i++) { chls1[i].className="hand"; chls2[i].style.display="none"; chls2[i+1].style.display="none"; } obj.setAttribute("class","hand bg"); chls2[n+1].style.display="block"; } function zoom(obj) { if(obj.innerText==">") { obj.innerHTML="<"; document.getElementById("td_left").style.display=""; obj.style.left="-2px"; } else{ obj.innerHTML=">"; document.getElementById("td_left").style.display="none"; obj.style.left="3px"; } } function mDown(e){ var div_bd = document.getElementById("div_border"); if(e.target.id=="div_border")div_bd.down=true; } function mMove(e) { var div_bd = document.getElementById("div_border"); var td = document.getElementById("td_left"); if (div_bd.down) { td.width=e.clientX+"px"; } } function mUp(e){ var div_bd = document.getElementById("div_border"); div_bd.down=false; } function kDown(e){ var e = e || window.event; if(e.keyCode == 13 && "SearchText" ==document.activeElement.id)search(); } document.addEventListener('mousedown',mDown); document.addEventListener('mousemove',mMove); document.addEventListener('mouseup',mUp); //监听回车 document.addEventListener("keydown",kDown); </script> </head> <body> <!--form id="locSearch"--> <div class="top"> <div class="search_div_input"> <input type="text" name="word" class="search_text" maxlength="256" id="SearchText" autocomplete="off" /> </div> <div class="search_div_btn"> <input value="百度一下" id="poiSearchBtn" class="search_btn" type="button" onclick="search()" /> </div> <div id=div_test></div> </div> <!--/form--> <div class="footer"> <table width="100%" height="100%" cellpadding="0" cellspacing="0"> <tr> <td id="td_left" width="300px"> <table width="100%" height="100%" cellpadding="0" cellspacing="0" style="visible:"> <tr> <td id="border" width="40px" valign="top" style="text-align:center; background-color:#000;"> <div id=divb1 class="hand bg" onClick="chk(this,0);">搜索</div> <div id=divb2 class="hand" onClick="chk(this,1);">跟踪</div> <div id=divb3 class="hand" onClick="chk(this,2);">线路</div> </td> <td id=tdLeft> <div id=divr0 class="left_r"></div> <div id=divr1 class="left_r" style="display:block"> <textarea id="v1" width="100%" rows="5"></textarea><br /> <input type="button" onClick="btn1();" class="search_btn" value="多地址搜索" /> </div> <div id=divr2 class="left_r"> <textarea id="v2" width="100%" rows="15"></textarea><br /> <input type="button" onClick="btn2();" class="search_btn" value="经纬度标记" /> </div> <div id=divr3 class="left_r"> <div id="route" class=route> <ul id="route_tab"> <li class="tab-item bus-tab" data-index="1"> <i></i><span>公交</span> </li> <li class="tab-item drive-tab" data-index="2"> <i></i><span>驾车</span> </li> <li class="tab-item walk-tab" data-index="3"> <i></i><span>步行</span> </li> <li class="tab-item bike-tab" data-index="4"> <i></i><span>骑行</span> </li> </ul></div> </div> </td> </tr> </table> </td> <td style="margin:auto 0;position:relative;"> <div id="div_border" class="div_border"> </div> <div id="sf" class="sf" onClick="zoom(this);"><</div> <div id=ditu class="right_main"></div> </td> </tr> </table> </div> </body> </html> <script type="text/javascript"> /*** 技术参考:http://developer.baidu.com/map/index.php?title=jspopular ***/ var map = new BMap.Map("ditu"); var point = new BMap.Point(116.404, 39.915); point = new BMap.Point(121.369311, 31.224454) map.centerAndZoom(point, 17); map.addControl(new BMap.NavigationControl()); map.addControl(new BMap.ScaleControl()); map.addControl(new BMap.OverviewMapControl()); map.enableScrollWheelZoom(); ////////////////////////////////////// var aInfo=new Array(); var ap=new Array(); var am=new Array(); var al=new Array(); function btn1(){ var val = document.getElementById("v1").value; var av=val.split('\n'); var count=65; map.clearOverlays(); aInfo=new Array(); ap=new Array(); am=new Array(); // 创建地址解析器实例 var myGeo = new BMap.Geocoder(); for(var i=0;i<av.length;i++) { if(av[i]!="") // 将地址解析结果显示在地图上,并调整地图视野 myGeo.getPoint(av[i], function(pot,opt){ if (pot) { var m=new BMap.Marker(pot); var lab = new BMap.Label(opt.address,{offset:new BMap.Size(20,-10)}); m.setLabel(lab); m.id=count++; m.enableDragging(); m.addEventListener("click",showInfo); am.push(m); ap.push(pot); aInfo.push('<div style="margin:0;line-height:20px;padding:2px;">城市:'+ opt.city +'<br />地址:'+ opt.address +'</div>'); map.addOverlay(m); }else{ alert("您选择地址没有解析到结果!"); } }, "上海市");//查询地址所在地城市 } setTimeout(function(){map.setViewport(ap);}, 500); } function showInfo(e) { for(var i=0;i<am.length;i++){am[i].setZIndex(i);} e.target.setZIndex(1000); var searchInfoWindow = new BMapLib.SearchInfoWindow(map, aInfo[e.target.id-65], { title : "地址详细信息", //标题 width : 290, //宽度 height : 75, //高度 panel : "panel", //检索结果面板 enableAutoPan : true, //自动平移 searchTypes :[ BMAPLIB_TAB_SEARCH, //周边检索 BMAPLIB_TAB_TO_HERE, //到这里去 BMAPLIB_TAB_FROM_HERE //从这里出发 ] }); searchInfoWindow.open(e.target); } function btn2() { al=new Array(); ap=new Array(); var val = document.getElementById("v2").value; var v1=val.split('\n'); if(v1=="jack") { map.addEventListener("click", function(e){ document.getElementById("v2").value+=e.point.lng + ", " + e.point.lat+"\n";}); map.setDefaultCursor("crosshair"); alert("现在可以在地图上拾取坐标点了!"); return; } for(var i=0;i<v1.length;i++) { if(v1[i]!="") { var p = new BMap.Point(v1[i].split(",")[0], v1[i].split(",")[1]); var m=new BMap.Marker(p); var lab = new BMap.Label("时间"+i,{offset:new BMap.Size(20,-10)}); m.setLabel(lab); m.enableDragging(); ap.push(p); al.push(p); } } map.clearOverlays(); var pointCollection = new BMap.PointCollection(ap); // 初始化PointCollection map.addOverlay(pointCollection); var pline=new BMap.Polyline(); pline.setPath(al); pline.setStrokeWeight(2); map.addOverlay(pline); map.setViewport(ap); } function search() { var chls1=document.getElementById("tdLeft").children; for(var i=0;i<chls1.length;i++) chls1[i].style.display="none"; chls1[0].style.display="block"; var v= document.getElementById("SearchText"); var local = new BMap.LocalSearch(map, { renderOptions: {map: map, panel: "divr0",autoViewport:"true"} }); local.search(v.value); } </script>
==============================================================
另外再推荐一个别人写的,很好玩的地图应用:
关注我】。(●'◡'●)
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的【因为,我的写作热情也离不开您的肯定与支持,感谢您的阅读,我是【Jack_孟】!
本文来自博客园,作者:jack_Meng,转载请注明原文链接:https://www.cnblogs.com/mq0036/p/4890306.html
【免责声明】本文来自源于网络,如涉及版权或侵权问题,请及时联系我们,我们将第一时间删除或更改!
posted on 2015-10-18 21:11 jack_Meng 阅读(1575) 评论(0) 编辑 收藏 举报