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 13 Javascript
一些Javascript的IE和Firefox(火狐)兼容性的问题总结及常用例子
May 21 Javascript
js getElementsByTagName的简写方式
Jun 27 Javascript
jquery处理json数据实例分析
Jun 03 Javascript
JS实现适合于后台使用的动画折叠菜单效果
Sep 21 Javascript
Jquery Easyui自定义下拉框组件使用详解(21)
Dec 31 Javascript
浅谈Vue下使用百度地图的简易方法
Mar 23 Javascript
vue实现todolist基本功能以及数据存储功能实例详解
Apr 11 Javascript
解决Layui数据表格显示无数据提示的问题
Nov 14 Javascript
webpack打包html里面img后src为“[object Module]”问题
Dec 22 Javascript
JavaScript获取当前url路径过程解析
Dec 27 Javascript
2019年度web前端面试题总结(主要为Vue面试题)
Jan 12 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
不用数据库的多用户文件自由上传投票系统(1)
2006/10/09 PHP
php不用正则验证真假身份证
2013/11/06 PHP
Yii不依赖Model的表单生成器用法实例
2014/12/04 PHP
PHP基本语法实例总结
2016/09/09 PHP
yii2.0整合阿里云oss的示例代码
2017/09/19 PHP
javascript中用星号表示预录入内容的实现代码
2011/01/08 Javascript
30个精美的jQuery幻灯片效果插件和教程
2011/08/23 Javascript
查看图片(前进后退)功能实现js代码
2013/04/24 Javascript
JavaScript中按位“异或”运算符使用介绍
2014/03/14 Javascript
Jquery实现鼠标移动放大图片功能实例
2015/03/25 Javascript
JS绘制生成花瓣效果的方法
2015/08/05 Javascript
jQuery过滤HTML标签并高亮显示关键字的方法
2015/08/07 Javascript
Javascript同时声明一连串(多个)变量的方法
2017/01/23 Javascript
详解Vue-基本标签和自定义控件
2017/03/24 Javascript
Angularjs 动态添加指令并绑定事件的方法
2017/04/13 Javascript
jquery.picsign图片标注组件实例详解
2018/02/02 jQuery
详解vue表单——小白速看
2018/04/08 Javascript
详解NodeJs项目 CentOs linux服务器线上部署
2019/09/16 NodeJs
24个解决实际问题的ES6代码片段(小结)
2020/02/02 Javascript
python算法学习之计数排序实例
2013/12/18 Python
常见的python正则用法实例讲解
2016/06/21 Python
python 循环遍历字典元素的简单方法
2016/09/11 Python
详解如何管理多个Python版本和虚拟环境
2019/05/10 Python
python实现一个函数版的名片管理系统过程解析
2019/08/27 Python
使用jupyter notebook运行python和R的步骤
2020/08/13 Python
沙特阿拉伯排名第一的在线时尚购物应用程序:1Zillion
2020/08/08 全球购物
财务部副经理岗位职责
2014/03/14 职场文书
运动会演讲稿
2014/05/07 职场文书
演讲稿的写法
2014/05/19 职场文书
大学生团日活动总结
2015/05/06 职场文书
签证工作证明模板
2015/06/15 职场文书
2019各种承诺书范文
2019/06/24 职场文书
Nginx访问日志及错误日志参数说明
2021/03/31 Servers
nginx 反向代理之 proxy_pass的实现
2021/03/31 Servers
教你如何使用Python开发一个钉钉群应答机器人
2021/06/21 Python
简述Java中throw-throws异常抛出
2021/08/07 Java/Android