如何使用百度地图API自动获取地址和经纬度

原创 2016年09月03日 17:28:43

在实际工作中我们经常会遇到这样的问题,但是当我们去看百度API的时候往往又达不到我们的要求。

故此,本篇博文讲述如何使用百度地图API自动获取地址和经纬度:

1、HTML代码如下

<!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=7a6QKaIilZftIMmKGAFLG7QT1GLfIncg"></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='width: 50%; height: 50%; position: absolute; display: none'></div>
</div>
</body>
</html>

2、JS代码如下

<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.331398, 39.897445);
    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>

将js代码放入到html中,我们可以得到效果图如下:




版权声明:转载时请标注http://blog.csdn.net/zhihua_w

在浏览器中使用百度地图的定位服务获得经纬度

1.在使用百度地图之前,先登录百度账号,申请一个ak秘钥。申请ak访问码的地址为:http://lbsyun.baidu.com/apiconsole/key 申请一个ak用于访问百度地图API的访...
  • cw_hello1
  • cw_hello1
  • 2017年10月20日 15:59
  • 569

百度地图JS-API:点击获取经纬度以及地址

百度地图API 获取地址 经纬度
  • yangjun19890825
  • yangjun19890825
  • 2017年05月08日 15:55
  • 2469

百度地图通过经纬度获取地址信息

以前用的都是通过谷歌的坐标调用谷歌api 最近 发现老是连不上谷歌服务器。 于是找了找百度的, 地址为http://developer.baidu.com/map/webservice-geocodi...
  • a714115852
  • a714115852
  • 2014年06月22日 18:05
  • 7426

利用百度地图api通过城市地址等信息取经纬度

标红的是可以通过经纬度获得当前城市信息(微信定位使用)。 Geocoding API有哪些功能? Geocoding API包括地址解析和逆地址解析功能。 地址解析是指,由详细到街道...
  • u013791374
  • u013791374
  • 2016年05月18日 10:25
  • 34744

百度地图根据经纬度获取地名

首先引用百度 script 然后 javascript : // 百度地图API功能 var map = new BMap.Map("allmap"); var point =...
  • u010363836
  • u010363836
  • 2017年05月17日 14:13
  • 1280

百度地图API实现 地址&经纬度 互相转换

1.根据地址取得经纬度: 请求地址:http://api.map.baidu.com/geocoder/v2/?address=%E4%B8%AD%E5%9B%BD%E6%88%90%E9%83%BD...
  • a497785609
  • a497785609
  • 2017年05月17日 09:26
  • 5499

百度地图定位无法获取location的经纬度

打印经纬度的值都是0。             mLocClient.registerLocationListener(new BDLocationListener()       ...
  • rongwenbin
  • rongwenbin
  • 2015年08月10日 11:16
  • 697

百度地图获取经度纬度、省市街道号码

  • 2012年09月21日 12:06
  • 2KB
  • 下载

百度地图api获取经纬度和城市名称

想集成百度API定位需要完成以下步骤: 1:注册开发者 2:申请key 3:下载jar包 4:代码集成 先看下效果: 1:注册开发者 最好提前申请,审核需要1,2天 ...
  • pengkv
  • pengkv
  • 2015年03月02日 15:27
  • 3975

使用html5获取当前手机的经纬度,并接入百度地图API,查询出当前位置

最近项目需要,稍微研究一下html5获取当前地理位置的问题。 获取当前位置的经纬度很简单,一句代码就搞定 navigator.geolocation.getCurrentPosition(func...
  • dennis19910627
  • dennis19910627
  • 2015年08月06日 18:50
  • 22810
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何使用百度地图API自动获取地址和经纬度
举报原因:
原因补充:

(最多只允许输入30个字)