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 相关文章推荐
提升你网站水平的jQuery插件集合推荐
Apr 19 Javascript
分享一个我自己写的ToolTip提示插件(附源码)
Jan 20 Javascript
JQuery-tableDnD 拖拽的基本使用介绍
Jul 04 Javascript
JS 删除字符串最后一个字符的实现代码
Feb 20 Javascript
提取jquery的ready()方法单独使用示例
Mar 25 Javascript
JavaScript将一个数组插入到另一个数组的方法
Mar 19 Javascript
js简单的点击返回顶部效果实现方法
Apr 10 Javascript
JavaScript学习笔记之数组的增、删、改、查
Mar 23 Javascript
第八篇Bootstrap下拉菜单实例代码
Jun 21 Javascript
微信小程序获取微信运动步数的实例代码
Jul 20 Javascript
浅析Vue实例以及生命周期
Aug 14 Javascript
JavaScript简单实现动态改变HTML内容的方法示例
Dec 25 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
给多个地址发邮件的类
2006/10/09 PHP
PHP性能优化准备篇图解PEAR安装
2011/12/05 PHP
PHP中使用Imagick读取pdf并生成png缩略图实例
2015/01/21 PHP
PHP读取大文件的多种方法介绍
2016/04/04 PHP
jquery简单体验
2007/01/10 Javascript
Display SQL Server Login Mode
2007/06/21 Javascript
番茄的表单验证类代码修改版
2008/07/18 Javascript
jquery 设置元素相对于另一个元素的top值(实例代码)
2013/11/06 Javascript
javascript在IE下trim函数无法使用的解决方法
2014/09/12 Javascript
jquery中使用循环下拉菜单示例代码
2014/09/24 Javascript
jQuery中remove()方法用法实例
2014/12/25 Javascript
jQuery遍历DOM节点操作之filter()方法详解
2016/04/14 Javascript
JavaScript性能优化之函数节流(throttle)与函数去抖(debounce)
2016/08/11 Javascript
jsTree使用记录实例
2016/12/01 Javascript
JS实现的计数排序与基数排序算法示例
2017/12/04 Javascript
详解ES6中的代理模式——Proxy
2018/01/08 Javascript
web前端vue之CSS过渡效果示例
2018/01/10 Javascript
JS设计模式之命令模式概念与用法分析
2018/02/06 Javascript
VUE重点问题总结
2018/03/19 Javascript
Vue.js的复用组件开发流程完整记录
2018/11/29 Javascript
浅谈小程序globalData的那些事儿
2019/11/01 Javascript
Eclipse中Python开发环境搭建简单教程
2016/03/23 Python
Python实现针对给定字符串寻找最长非重复子串的方法
2018/04/21 Python
对IPython交互模式下的退出方法详解
2019/02/16 Python
Python字符串逆序输出的实例讲解
2019/02/16 Python
ubuntu 16.04下python版本切换的方法
2019/06/14 Python
Python pandas.DataFrame调整列顺序及修改index名的方法
2019/06/21 Python
使用pytorch实现可视化中间层的结果
2019/12/30 Python
python中的对数log函数表示及用法
2020/12/09 Python
CSS3教程(4):网页边框和网页文字阴影
2009/04/02 HTML / CSS
Lucene推荐的分页方式是什么?
2015/12/07 面试题
数学专业毕业生自荐信
2013/11/10 职场文书
旷课检讨书500字
2014/10/14 职场文书
创业计划书之都市休闲农庄
2019/12/28 职场文书
阿里云Nginx配置https实现域名访问项目(图文教程)
2021/03/31 Servers
Vue+Element UI实现概要小弹窗的全过程
2021/05/30 Vue.js