百度地图javascript api制作一个标注
有时做了一些东西没有记录,而过一段时间再看的时候,有会忘记了。需要在重新在看一遍。
百度地图javascript api可以参考 http://developer.baidu.com/map/reference/ 示例:http://developer.baidu.com/map/jsdemo.htm
更多百度地图的介绍http://www.cnblogs.com/milkmap/tag/%E5%9C%B0%E5%9B%BEAPI/ 里面介绍的非常详细。
弄了一个百度地图来标注地理位置信息,通过百度api来获取地址。这地图api是javascript版
添加显示显示的div控件
View Code
1 <div> 2 <p>搜索: 3 <input id="txtarea" type="text" size="50" /> <input id="areaSearch" 4 type="button" value="搜索" style="cursor: pointer" /> 5 </p> 6 <p> 纬度:<input name="txtlatitude" type="text" id="txtlatitude" style="width:200px;" /> 7 经度:<input name="txtLongitude" type="text" id="txtLongitude" style="width:200px;" /> 8 标注点所在区域:<input name="txtAreaCode" type="text" id="txtAreaCode" style="width:200px;" /> 9 </p> 10 </div> 11 <div style="width: 420px; height: 340px; border: 1px solid gray; float: left;" id="container"> 12 </div> 13 <div style="width: 350px; height: 340px;" id="Div1"> 14 <div> 15 <div class="sel_container"> 16 <strong id="curCity">北京市</strong> [<a id="curCityText" href="javascript:void(0)">更换城市</a>]</div> 17 <div class="map_popup" id="cityList" style="display: none;"> 18 <div class="popup_main"> 19 <div class="title"> 20 城市列表</div> 21 <div class="cityList" id="citylist_container"> 22 </div> 23 <button id="popup_close"> 24 </button> 25 </div> 26 </div> 27 </div> 28 </div>
在引用引用
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.3.min.js"></script> //jquery库 <script type="text/javascript" src="http://api.map.baidu.com/api?v=1.2"></script> //百度地图的文件 <script type="text/javascript" src="http://api.map.baidu.com/library/CityList/1.2/src/CityList_min.js"></script> //城市选择的
添加代码
View Code
1 <script type="text/javascript"> 2 var map = new BMap.Map("container"); 3 map.centerAndZoom(new BMap.Point(117.10, 40.13), 11); 4 map.addControl(new BMap.NavigationControl()); 5 map.addControl(new BMap.ScaleControl()); 6 map.addControl(new BMap.OverviewMapControl()); 7 map.addControl(new BMap.MapTypeControl()); 8 9 10 11 12 13 14 //搜索 15 document.getElementById("areaSearch").onclick = function () { 16 // 创建地址解析器实例 17 var myGeo = new BMap.Geocoder(); 18 var searchTxt = document.getElementById("txtarea").value; 19 // 将地址解析结果显示在地图上,并调整地图视野 20 myGeo.getPoint(searchTxt, function (point) { 21 if (point) { 22 map.centerAndZoom(point, 16); 23 24 25 document.getElementById("txtlatitude").value = point.lat; 26 document.getElementById("txtLongitude").value = point.lng; 27 var pointMarker = new BMap.Point(point.lng, point.lat); 28 geocodeSearch(pointMarker); 29 30 map.addOverlay(new BMap.Marker(point)); 31 } 32 else 33 alert("搜索不到结果"); 34 }, "全国"); 35 } 36 37 map.enableScrollWheelZoom(); 38 // 创建CityList对象,并放在citylist_container节点内 39 var myCl = new BMapLib.CityList({ container: "citylist_container", map: map }); 40 // 给城市点击时,添加相关操作 41 myCl.addEventListener("cityclick", function (e) { 42 // 修改当前城市显示 43 document.getElementById("curCity").innerHTML = e.name; 44 // 点击后隐藏城市列表 45 document.getElementById("cityList").style.display = "none"; 46 }); 47 // 给“更换城市”链接添加点击操作 48 document.getElementById("curCityText").onclick = function () { 49 var cl = document.getElementById("cityList"); 50 if (cl.style.display == "none") { 51 cl.style.display = ""; 52 } else { 53 cl.style.display = "none"; 54 } 55 }; 56 // 给城市列表上的关闭按钮添加点击操作 57 document.getElementById("popup_close").onclick = function () { 58 var cl = document.getElementById("cityList"); 59 if (cl.style.display == "none") { 60 cl.style.display = ""; 61 } else { 62 cl.style.display = "none"; 63 } 64 }; 65 66 67 map.addEventListener("click", function (e) { 68 document.getElementById("txtlatitude").value = e.point.lat; 69 document.getElementById("txtLongitude").value = e.point.lng; 70 map.clearOverlays(); 71 var pointMarker = new BMap.Point(e.point.lng, e.point.lat); // 创建标注的坐标 72 addMarker(pointMarker); 73 geocodeSearch(pointMarker); 74 }); 75 76 function addMarker(point) { 77 var myIcon = new BMap.Icon("mk_icon.png", new BMap.Size(21, 25), 78 { offset: new BMap.Size(21, 21), 79 imageOffset: new BMap.Size(0, -21) 80 }); 81 var marker = new BMap.Marker(point, { icon: myIcon }); 82 map.addOverlay(marker); 83 } 84 function geocodeSearch(pt) { 85 var myGeo = new BMap.Geocoder(); 86 myGeo.getLocation(pt, function (rs) { 87 var addComp = rs.addressComponents; 88 document.getElementById("txtAreaCode").value = addComp.province + ", " + addComp.city + ", " + addComp.district; 89 }); 90 } 91 92 93 94 </script>
效果图
这标注的源码:百度地图标注源码
作者:划风
邮箱:emaisi@hotmail.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.