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应该怎样学
Apr 16 Javascript
基于jQuery的获取标签名的代码
Jul 16 Javascript
jquery对象和DOM对象的区别介绍
Aug 09 Javascript
javascript框架设计读书笔记之字符串的扩展和修复
Dec 02 Javascript
jQuery zclip插件实现跨浏览器复制功能
Nov 02 Javascript
WordPress 单页面上一页下一页的实现方法【附代码】
Mar 10 Javascript
vue插件draggable实现拖拽移动图片顺序
Dec 01 Javascript
javascript原型链学习记录之继承实现方式分析
May 01 Javascript
swiper4实现移动端导航切换
Oct 16 Javascript
ionic2.0双击返回键退出应用
Sep 17 Javascript
VUE+elementui面包屑实现动态路由详解
Nov 04 Javascript
JavaScript canvas实现流星特效
May 20 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实现简单数字分页效果
2015/07/26 PHP
php对二维数组进行相关操作(排序、转换、去空白等)
2015/11/04 PHP
准确获得页面、窗口高度及宽度的JS
2006/11/26 Javascript
JavaScript 封装Ajax传递的数据代码
2009/06/05 Javascript
javascript EXCEL 操作类代码
2009/07/30 Javascript
浅说js变量
2011/05/25 Javascript
JavaScript高级程序设计(第3版)学习笔记8 js函数(中)
2012/10/11 Javascript
jQuery标签替换函数replaceWith()的使用例子
2014/08/28 Javascript
JS实现很酷的水波文字特效实例
2015/02/26 Javascript
jQuery中animate动画第二次点击事件没反应
2015/05/07 Javascript
RequireJS入门一之实现第一个例子
2015/09/30 Javascript
jQuery控制li上下循环滚动插件用法实例(附demo源码下载)
2016/05/28 Javascript
jQuery实现iframe父窗体和子窗体的相互调用
2016/06/17 Javascript
微信小程序加载更多 点击查看更多
2016/11/29 Javascript
JavaScript数据结构之二叉树的计数算法示例
2017/04/13 Javascript
原生js简单实现放大镜特效
2017/05/16 Javascript
JS中type=&quot;button&quot;和type=&quot;submit&quot;的区别
2017/07/04 Javascript
Vue数组更新及过滤排序功能
2017/08/10 Javascript
JS获取本地地址及天气的方法实例小结
2019/05/10 Javascript
Vue 动态组件components和v-once指令的实现
2019/08/30 Javascript
vue 中的动态传参和query传参操作
2020/11/09 Javascript
[03:15]2014DOTA2国际邀请赛 专访国士无双信心满满
2014/07/12 DOTA
python使用线程封装的一个简单定时器类实例
2015/05/16 Python
Python 26进制计算实现方法
2015/05/28 Python
Python函数返回值实例分析
2015/06/08 Python
在Python中使用zlib模块进行数据压缩的教程
2015/06/26 Python
在类Unix系统上开始Python3编程入门
2015/08/20 Python
OnePlus加拿大官网:中国国际化手机品牌
2020/10/13 全球购物
写clone()方法时,通常都有一行代码,是什么?
2012/10/31 面试题
实习生个人的自我评价
2013/12/08 职场文书
单位单身证明样本
2014/10/11 职场文书
市贸粮局召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
给老婆的保证书怎么写
2015/05/08 职场文书
如何利用python和DOS获取wifi密码
2021/03/31 Python
python APScheduler执行定时任务介绍
2022/04/19 Python
Mysql中@和@@符号的详细使用指南
2022/06/05 MySQL