JS使用百度地图API自动获取地址和经纬度操作示例


Posted in Javascript onApril 16, 2019

本文实例讲述了JS使用百度地图API自动获取地址和经纬度操作。分享给大家供大家参考,具体如下:

在实际工作中我们经常会遇到这样的问题,但是当我们去看百度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中,我们可以得到效果图如下:

JS使用百度地图API自动获取地址和经纬度操作示例

JS使用百度地图API自动获取地址和经纬度操作示例

JS使用百度地图API自动获取地址和经纬度操作示例

更多关于JavaScript相关内容还可查看本站专题:《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript数组操作技巧总结》、《JavaScript事件相关操作与技巧大全》、《JavaScript操作DOM技巧总结》及《JavaScript字符与字符串操作技巧总结》

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
WebGame《逆转裁判》完整版 代码下载(1月24日更新)
Jan 29 Javascript
javascript AutoScroller 函数类
May 29 Javascript
jQuery dialog 异步调用ashx,webservice数据的代码
Aug 03 Javascript
JavaScript的parseInt 取整使用
May 09 Javascript
JQuery中使文本框获得焦点的方法实例分析
Feb 28 Javascript
简单纯js实现点击切换TAB标签实例
Aug 23 Javascript
jquery对复选框(checkbox)的操作汇总
Jan 13 Javascript
JS实现的颜色实时渐变效果完整实例
Mar 25 Javascript
利用vscode编写vue的简单配置详解
Jun 17 Javascript
vue主动刷新页面及列表数据删除后的刷新实例
Sep 16 Javascript
vue实现登录页面的验证码以及验证过程解析(面向新手)
Aug 02 Javascript
VUE : vue-cli中去掉路由中的井号#操作
Sep 04 Javascript
JQuery Ajax跨域调用和非跨域调用问题实例分析
Apr 16 #jQuery
vue+element UI实现树形表格带复选框的示例代码
Apr 16 #Javascript
JS实现根据详细地址获取经纬度功能示例
Apr 16 #Javascript
Vue 理解之白话 getter/setter详解
Apr 16 #Javascript
在vue中使用setInterval的方法示例
Apr 16 #Javascript
vue实现局部刷新的实现示例
Apr 16 #Javascript
如何自动化部署项目?折腾服务器之旅~
Apr 16 #Javascript
You might like
关于PHP递归算法和应用方法介绍
2013/04/15 PHP
thinkPHP订单数字提醒功能的实现方法
2016/12/01 PHP
php插件Xajax使用方法详解
2017/08/31 PHP
利用PHP判断是手机移动端还是PC端访问的函数示例
2017/12/14 PHP
PHP实现正则匹配所有括号中的内容
2018/06/22 PHP
PHP读取目录树的实现方法分析
2019/03/22 PHP
prototype 中文参数乱码解决方案
2009/11/09 Javascript
javascript 词法作用域和闭包分析说明
2010/08/12 Javascript
Javascript 鼠标移动上去 滑块跟随效果代码分享
2013/11/23 Javascript
window.showModalDialog()返回值的学习心得总结
2014/01/07 Javascript
SeaJS入门教程系列之使用SeaJS(二)
2014/03/03 Javascript
jQuery中:disabled选择器用法实例
2015/01/04 Javascript
JavaScript使用ActiveXObject访问Access和SQL Server数据库
2015/04/02 Javascript
javascript实现数组内值索引随机化及创建随机数组的方法
2015/08/10 Javascript
window.onload绑定多个事件的两种解决方案
2016/05/15 Javascript
值得学习的bootstrap fileinput文件上传工具
2016/11/08 Javascript
jQuery Ajax请求后台数据并在前台接收
2016/12/10 Javascript
JavaScript中Promise的使用详解
2017/02/26 Javascript
JavaScript中错误正确处理方式小结你用对了吗
2017/10/10 Javascript
VeeValidate 的使用场景以及配置详解
2019/01/11 Javascript
使用vue-router切换页面时实现设置过渡动画
2019/10/31 Javascript
Websocket 向指定用户发消息的方法
2020/01/09 Javascript
ES6 class类链式继承,实例化及react super(props)原理详解
2020/02/15 Javascript
JavaScript组合设计模式--改进引入案例分析
2020/05/23 Javascript
Python中Collection的使用小技巧
2014/08/18 Python
Python csv模块使用方法代码实例
2019/08/29 Python
python-tornado的接口用swagger进行包装的实例
2019/08/29 Python
Python函数参数定义及传递方式解析
2020/06/10 Python
pandas实现导出数据的四种方式
2020/12/13 Python
巴西男士胡须和头发护理产品商店:Beard
2017/11/13 全球购物
兰蔻英国官网:Lancome英国
2019/04/30 全球购物
秋季运动会加油稿200字
2014/01/11 职场文书
房地产财务部员工岗位职责
2014/03/12 职场文书
实习推荐信格式模板
2015/03/27 职场文书
采购员岗位职责范本
2015/04/07 职场文书
关于k8s环境部署mysql主从的问题
2022/03/13 MySQL