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 自动完成脚本整理(33个)
Oct 20 Javascript
JavaScript中判断函数是new还是()调用的区别说明
Apr 07 Javascript
JavaScript异步回调的Promise模式封装实例
Jun 07 Javascript
javascript实现日期格式转换
Dec 16 Javascript
jQuery如何使用自动触发事件trigger
Nov 29 Javascript
jquery实现全选功能效果的实现代码
May 05 Javascript
基于AngularJS实现的工资计算器实例
Jun 16 Javascript
解决Vue调用springboot接口403跨域问题
Sep 02 Javascript
基于Vue的商品主图放大镜方案详解
Sep 19 Javascript
通过实例了解JS执行上下文运行原理
Jun 17 Javascript
详细分析vue响应式原理
Jun 22 Javascript
Vue全局使用less样式,组件使用全局样式文件中定义的变量操作
Oct 21 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/06/04 PHP
php中session_id()函数详细介绍,会话id生成过程及session id长度
2015/09/23 PHP
Laravel中log无法写入问题的解决
2017/06/17 PHP
PHP实现微信退款功能
2018/10/02 PHP
Yii2框架自定义类统一处理url操作示例
2019/05/25 PHP
jquery 模式对话框终极版实现代码
2009/09/28 Javascript
jquery判断字符输入个数(数字英文长度记为1,中文记为2,超过长度自动截取)
2010/10/15 Javascript
jquery简单实现网页层的展开与收缩效果
2015/08/07 Javascript
JS实现仿Windows7风格的网页右键菜单效果代码
2015/09/11 Javascript
修复jQuery tablesorter无法正确排序的bug(加千分位数字后)
2016/03/30 Javascript
jQuery处理XML文件的几种方法
2016/06/14 Javascript
JS验证 只能输入小数点,数字,负数的实现方法
2016/10/07 Javascript
Node.js批量给图片加水印的方法
2016/11/15 Javascript
关于Vue.js一些问题和思考学习笔记(2)
2016/12/02 Javascript
手机软键盘弹出时影响布局的解决方法
2016/12/15 Javascript
bootstrap select下拉搜索插件使用方法详解
2017/11/23 Javascript
Vue 进入/离开动画效果
2017/12/26 Javascript
vue+axios 前端实现登录拦截的两种方式(路由拦截、http拦截)
2018/10/24 Javascript
Vue实现验证码功能
2019/12/03 Javascript
angular组件间通讯的实现方法示例
2020/05/07 Javascript
深入理解javascript中的this
2021/02/08 Javascript
python中__call__方法示例分析
2014/10/11 Python
python正则表达式re之compile函数解析
2017/10/25 Python
python多进程读图提取特征存npy
2019/05/21 Python
python 穷举指定长度的密码例子
2020/04/02 Python
Django的ListView超详细用法(含分页paginate)
2020/05/21 Python
python中return如何写
2020/06/18 Python
Python3.9新特性详解
2020/10/10 Python
HTML5: Web 标准最巨大的飞跃
2008/10/17 HTML / CSS
人事专员岗位职责
2013/11/20 职场文书
护理专业自荐书
2014/06/04 职场文书
竞选班干部演讲稿300字
2014/08/20 职场文书
go设置多个GOPATH的方式
2021/05/05 Golang
总结几个非常实用的Python库
2021/06/26 Python
MySQL数据库优化之通过索引解决SQL性能问题
2022/04/10 MySQL
win10电脑右下角输入法图标不见了?Win10右下角不显示输入法的解决方法
2022/07/23 数码科技