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 相关文章推荐
js href的用法
May 13 Javascript
为Extjs加加速(javascript加速)
Aug 19 Javascript
javascript学习(二)javascript常见问题总结
Jan 02 Javascript
javascript事件函数中获得事件源的两种不错方法
Mar 17 Javascript
jquery的ajax跨域请求原理和示例
May 08 Javascript
jQuery实现自定义checkbox和radio样式
Jul 13 Javascript
js格式化输入框内金额、银行卡号
Feb 01 Javascript
Vue 使用中的小技巧
Apr 26 Javascript
js删除对象/数组中null、undefined、空对象及空数组方法示例
Nov 14 Javascript
webpack优化之代码分割与公共代码提取详解
Nov 22 Javascript
使用Vant完成通知栏Notify的提示操作
Nov 11 Javascript
如何使用CocosCreator对象池
Apr 14 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 中使用随机数的三个步骤
2006/10/09 PHP
PHPMyadmin 配置文件详解(配置)
2009/12/03 PHP
php5 non-thread-safe和thread-safe这两个版本的区别分析
2010/03/13 PHP
php发送邮件的问题详解
2015/06/22 PHP
PHP统计目录中文件以及目录中目录大小的方法
2016/01/09 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
2017/11/14 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
JavaScript中的私有/静态属性介绍
2012/07/26 Javascript
jQuery对象的selector属性用法实例
2014/12/27 Javascript
jQuery+easyui中的combobox实现下拉框特效
2015/02/27 Javascript
js数组如何添加json数据及js数组与json的区别
2015/10/27 Javascript
JavaScript必知必会(九)function 说起 闭包问题
2016/06/08 Javascript
JS中split()用法(将字符串按指定符号分割成数组)
2016/10/24 Javascript
javascript将json格式数组下载为excel表格的方法
2017/12/22 Javascript
jQuery实现滚动到底部时自动加载更多的方法示例
2018/02/18 jQuery
Nodejs中使用puppeteer控制浏览器中视频播放功能
2019/08/26 NodeJs
Vuex的各个模块封装的实现
2020/06/05 Javascript
Postman动态获取返回值过程详解
2020/06/30 Javascript
Javascript实现贪吃蛇小游戏(含详细注释)
2020/10/23 Javascript
详解基于element的区间选择组件校验(交易金额)
2021/01/07 Javascript
python发送HTTP请求的方法小结
2015/07/08 Python
Pycharm学习教程(6) Pycharm作为Vim编辑器使用
2017/05/03 Python
python多进程实现进程间通信实例
2017/11/24 Python
详解用python实现简单的遗传算法
2018/01/02 Python
selenium使用chrome浏览器测试(附chromedriver与chrome的对应关系表)
2018/11/29 Python
Python动态赋值的陷阱知识点总结
2019/03/17 Python
Python代码实现删除一个list里面重复元素的方法
2019/04/02 Python
python求一个字符串的所有排列的实现方法
2020/02/04 Python
Python实现快速大文件比较代码解析
2020/09/04 Python
jQuery treeview树形结构应用
2021/03/24 jQuery
助人为乐表扬信范文
2014/01/14 职场文书
同事吵架检讨书
2014/02/05 职场文书
物业保安岗位职责
2014/07/02 职场文书
小学生关于梦想的演讲稿
2014/08/22 职场文书
副总经理岗位职责范本
2014/09/30 职场文书
2016年入党心得体会范文
2016/01/23 职场文书