zoukankan      html  css  js  c++  java
  • 利用百度地图做的定位,获取位置和经纬度

    有时候我们在使用一个新的技术知识技能的时候,看问题有时不是我们想要的功能,看了还不是很理解,

    看了文档,查了资料后自己总结了一下,希望有帮助

    <!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>
    <title>点击地图获取地址和经纬度map,address,lng,lat</title>
    <meta name="robots" content="noindex, nofollow">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <!-- 将百度地图API引入,设置好自己的key -->
    <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=ltIDt5gWj2BFwDha2OyIFXXqONgzK42s"></script>
    </head>
    <body>

    <div class="main-div">
    <form method="post" action="" name="theForm" enctype="multipart/form-data" onsubmit="return validate()">
    <table cellspacing="1" cellpadding="3" width="100%">
    <tr>
    <td class="label">经度</td>
    <td><input type="text" name="lng" id="lng" value=""/>
    </td>
    </tr>
    <tr>
    <td class="label">纬度</td>
    <td><input type="text" name="lat" id="lat" value=""/>
    </td>
    </tr>
    <tr>
    <td class="label">地址</td>
    <td>
    <input type='text' value='' name='sever_add' id='sever_add' readonly>
    <input type='button' value='点击显示地图获取地址经纬度' id='open'>
    </td>
    </tr>
    </table>
    </form>
    <div id='allmap' style=' 50%; height: 50%; position: absolute; display: block'></div>
    </div>
    </body>
    </html>
    <script type="text/javascript">
    function validate() {
    var sever_add = document.getElementsByName('sever_add')[0].value;
    if (isNull(sever_add)) {
    alert('请选择地址');
    return false;
    }
    return true;
    }

    //判断是否是空
    function isNull(a) {
    return (a == '' || typeof(a) == 'undefined' || a == null) ? true : false;
    }

    document.getElementById('open').onclick = function () {
    if (document.getElementById('allmap').style.display == 'none') {
    document.getElementById('allmap').style.display = 'block';
    } else {
    // document.getElementById('allmap').style.display = 'none';
    }
    }

    var map = new BMap.Map("allmap");
    var geoc = new BMap.Geocoder(); //地址解析对象
    var markersArray = [];
    var geolocation = new BMap.Geolocation();


    var point = new BMap.Point(116.404, 39.915);
    map.centerAndZoom(point, 12); // 中心点
    geolocation.getCurrentPosition(function (r) {
    if (this.getStatus() == BMAP_STATUS_SUCCESS) {
    var mk = new BMap.Marker(r.point);
    map.addOverlay(mk);
    map.panTo(r.point);
    map.enableScrollWheelZoom(true);
    }
    else {
    alert('failed' + this.getStatus());
    }
    }, {enableHighAccuracy: true})
    map.addEventListener("click", showInfo);


    //清除标识
    function clearOverlays() {
    if (markersArray) {
    for (i in markersArray) {
    map.removeOverlay(markersArray[i])
    }
    }
    }
    //地图上标注
    function addMarker(point) {
    var marker = new BMap.Marker(point);
    markersArray.push(marker);
    clearOverlays();
    map.addOverlay(marker);
    }
    //点击地图时间处理
    function showInfo(e) {
    document.getElementById('lng').value = e.point.lng;
    document.getElementById('lat').value = e.point.lat;
    geoc.getLocation(e.point, function (rs) {
    var addComp = rs.addressComponents;
    var address = addComp.province + addComp.city + addComp.district + addComp.street + addComp.streetNumber;
    if (confirm("确定要地址是" + address + "?")) {
    document.getElementById('allmap').style.display = 'none';
    document.getElementById('sever_add').value = address;
    }
    });
    addMarker(e.point);
    }
    </script>

  • 相关阅读:
    【原创】深入理解c++的右值引用
    【原创】c++拷贝初始化和直接初始化的底层区别
    【原创】Github团队协作之Pull请求
    【原创】基于多线程的银行家算法设计
    【原创】Git删除暂存区或版本库中的文件
    【笔记】程序员的思维修炼3
    【笔记】德雷福斯模型
    【原创】GC/垃圾回收简介
    数据库——JavaWEB数据库连接
    多线程
  • 原文地址:https://www.cnblogs.com/mhtss/p/9540965.html
Copyright © 2011-2022 走看看