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 相关文章推荐
浅谈Javascript嵌套函数及闭包
Nov 09 Javascript
jQuery新闻滚动插件 jquery.roller.js
Jun 27 Javascript
使用ImageMagick进行图片缩放、合成与裁剪(js+python)
Sep 16 Javascript
直接在JS里创建JSON数据然后遍历使用
Jul 25 Javascript
JavaScript设置获取和设置属性的方法
Mar 04 Javascript
js实现缓冲运动效果的方法
Apr 10 Javascript
Vue方法与事件处理器详解
Dec 01 Javascript
利用prop-types第三方库对组件的props中的变量进行类型检测
May 02 Javascript
AngularJS中控制器函数的定义与使用方法示例
Oct 10 Javascript
Vue 解决路由过渡动画抖动问题(实例详解)
Jan 05 Javascript
JavaScript canvas绘制渐变颜色的矩形
Feb 18 Javascript
vue 导航守卫和axios拦截器有哪些区别
Dec 19 Vue.js
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用SAX解析XML的实现代码与问题分析
2011/08/22 PHP
Smarty的配置与高级缓存技术分享
2012/06/05 PHP
php可变长参数处理函数详解
2017/02/22 PHP
PHP实现图片的等比缩放和Logo水印功能示例
2017/05/04 PHP
IE与firefox之jquery用法区别
2008/10/03 Javascript
利用jquery操作select下拉列表框的代码
2010/06/04 Javascript
通过javascript获取iframe里的值示例代码
2013/06/24 Javascript
jQuery实现鼠标经过图片变亮其他变暗效果
2015/05/08 Javascript
javascript用函数实现对象的方法
2015/05/14 Javascript
JavaScript生成福利彩票双色球号码
2015/05/15 Javascript
浏览器环境下JavaScript脚本加载与执行探析之defer与async特性
2016/01/14 Javascript
jQuery判断checkbox选中状态
2016/05/12 Javascript
老生常谈js中0到底是 true 还是 false
2017/03/08 Javascript
js实现会跳动的日历效果(完整实例)
2017/10/18 Javascript
使用Angular Cli如何创建Angular私有库详解
2019/01/30 Javascript
为nuxt项目写一个面包屑cli工具实现自动生成页面与面包屑配置
2019/09/29 Javascript
vue实现图片上传预览功能
2019/12/23 Javascript
nodejs实现的http、https 请求封装操作示例
2020/02/06 NodeJs
Fabric 应用案例
2016/08/28 Python
对Python3 解析html的几种操作方式小结
2019/02/16 Python
python使用PyQt5的简单方法
2019/02/27 Python
Python数据类型之Number数字操作实例详解
2019/05/08 Python
Python3 元组tuple入门基础
2020/02/09 Python
详解css3中 text-fill-color属性
2019/07/08 HTML / CSS
html5 浏览器支持 如何让所有的浏览器都支持HTML5标签样式
2012/12/07 HTML / CSS
HTML5注册表单的自动聚焦与占位文本示例代码
2013/07/19 HTML / CSS
如何查看浏览器对html5的支持情况
2020/12/15 HTML / CSS
ECOSUSI官网:女式皮革背包
2019/09/27 全球购物
俄罗斯第一家篮球店:StreetBall
2020/07/30 全球购物
出纳员岗位责任制
2014/02/11 职场文书
手术室护士长竞聘书
2014/03/31 职场文书
物理教育专业求职信
2014/06/25 职场文书
个人批评与自我批评总结
2014/10/17 职场文书
丽江古城导游词
2015/02/03 职场文书
2019年公司卫生管理制度样本
2019/08/21 职场文书
Java移除无效括号的方法实现
2021/08/07 Java/Android