• 百度地图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" />&nbsp;&nbsp;<input id="areaSearch"
     4                                         type="button" value="搜索" style="cursor: pointer" />   
     5                                     </p>
     6                                     <p> 纬度:<input name="txtlatitude" type="text" id="txtlatitude" style="200px;" />
     7                        经度:<input name="txtLongitude" type="text" id="txtLongitude" style="200px;" />
     8                        标注点所在区域:<input name="txtAreaCode" type="text" id="txtAreaCode" style="200px;" />
     9                        </p>
    10                          </div> 
    11                          <div style=" 420px; height: 340px; border: 1px solid gray; float: left;" id="container">
    12                                 </div>
    13                                 <div style=" 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
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
  • 相关阅读:
    Http协议的断点续传下载器,使用观察者模式监视下载进度,使用xml保存下载进度。
    C++ 复制到粘贴板
    编译防火墙——C++的Pimpl惯用法解析
    字符串输出
    windows路径操作API函数
    Boost解析xml——xml写入
    智能指针shared_ptr
    Boost 解析xml——插入Item
    ListCtrl添加右键菜单(在对话框类中)
    抓包工具Charles的使用说明
  • 原文地址:https://www.cnblogs.com/dengxinglin/p/2816285.html
Copyright © 2020-2023  润新知