JS获取当前地理位置的方法


Posted in Javascript onOctober 25, 2017

本文实例为大家分享了JS获取当前地理位置方法的具体代码,供大家参考,具体内容如下

1.手机定位

var getLocation = function (successFunc, errorFunc) { 
  //successFunc获取定位成功回调函数,errorFunc获取定位失败回调
  //首先设置默认城市
  var defCity = {
    id: '000001',
    name: '北京市',
    date: curDateTime()//获取当前时间方法
  };
  //默认城市
  $.cookie('VPIAO_MOBILE_DEFAULTCITY', JSON.stringify(defCity), { expires: 1, path: '/' });
  if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(function (position) {
      var lat = position.coords.latitude;
      var lon = position.coords.longitude;
      //var map = new BMap.Map("container");  // 创建Map实例
      var point = new BMap.Point(lon, lat); // 创建点坐标
      var gc = new BMap.Geocoder();
      gc.getLocation(point, function (rs) {
        var addComp = rs.addressComponents;
        var curCity = {
          id: '',
          name: addComp.province,
          date: curDateTime()
        };
        //当前定位城市
        $.cookie('VPIAO_MOBILE_CURRENTCITY', JSON.stringify(curCity), { expires: 7, path: '/' });
        //alert(addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street);
        if (successFunc != undefined)
          successFunc(addComp);
      });
    },
    function (error) {
      switch (error.code) {
        case 1:
          alert("位置服务被拒绝。");
          break;
        case 2:
          alert("暂时获取不到位置信息。");
          break;
        case 3:
          alert("获取位置信息超时。");
          break;
        default:
          alert("未知错误。");
          break;
      }
      var curCity = {
        id: '000001',
        name: '北京市',
        date: curDateTime()
      };
      //默认城市
      $.cookie('VPIAO_MOBILE_DEFAULTCITY', JSON.stringify(curCity), { expires: 1, path: '/' });
      if (errorFunc != undefined)
        errorFunc(error);
    }, { timeout: 5000, enableHighAccuracy: true });
  } else {
    alert("你的浏览器不支持获取地理位置信息。");
    if (errorFunc != undefined)
      errorFunc("你的浏览器不支持获取地理位置信息。");
  }
};
var showPosition = function (position) {
  var lat = position.coords.latitude;
  var lon = position.coords.longitude;
  //var map = new BMap.Map("container");  // 创建Map实例
  var point = new BMap.Point(lon, lat); // 创建点坐标
  var gc = new BMap.Geocoder();
  gc.getLocation(point, function (rs) {
    var addComp = rs.addressComponents;
    var curCity = {
      id: '',
      name: addComp.province,
      date: curDateTime()
    };
    //当前定位城市
    $.cookie('VPIAO_MOBILE_CURRENTCITY', JSON.stringify(curCity), { expires: 7, path: '/' });
    //alert(addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street);
  });
};
var showPositionError = function (error) {
  switch (error.code) {
    case 1:
      alert("位置服务被拒绝。");
      break;
    case 2:
      alert("暂时获取不到位置信息。");
      break;
    case 3:
      alert("获取位置信息超时。");
      break;
    default:
      alert("未知错误。");
      break;
  }
  var curCity = {
    id: '000001',
    name: '北京市',
    date: curDateTime()
  };
  //默认城市
  $.cookie('VPIAO_MOBILE_DEFAULTCITY', JSON.stringify(curCity), { expires: 1, path: '/' });
};

前提要引入百度API: <script src="http://api.map.baidu.com/api?v=1.4" type="text/javascript"></script>

2.获取客户端IP方法

<script>
var url = 'http://chaxun.1616.net/s.php?type=ip&output=json&callback=?&_=' + Math.random();
      $.getJSON(url, function(data) {
        alert(data.Ip);
      });
</script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
30个让人兴奋的视差滚动(Parallax Scrolling)效果网站
Mar 04 Javascript
用javascript模仿ie的自动完成类似自动完成功的表单
Dec 12 Javascript
获取客户端网卡MAC地址和IP地址实现JS代码
Mar 17 Javascript
jquery 倒计时效果实现秒杀思路
Sep 11 Javascript
js获取select标签选中值的两种方式
Jan 09 Javascript
基于jQuery实现滚动切换效果
Dec 02 Javascript
对angularJs中自定义指令replace的属性详解
Oct 09 Javascript
微信小程序把百度地图坐标转换成腾讯地图坐标过程详解
Jul 10 Javascript
jquery中attr、prop、data区别与用法分析
Sep 25 jQuery
详解vue中使用transition和animation的实例代码
Dec 12 Vue.js
jquery实现淡入淡出轮播图效果
Dec 13 jQuery
Vue+scss白天和夜间模式切换功能的实现方法
Jan 05 Vue.js
JavaScript 异步调用
Oct 25 #Javascript
parabola.js抛物线与加入购物车效果的示例代码
Oct 25 #Javascript
通过js控制时间,一秒一秒自己动的实例
Oct 25 #Javascript
js 显示日期时间的实例(时间过一秒加1)
Oct 25 #Javascript
JavaScript编程设计模式之观察者模式(Observer Pattern)实例详解
Oct 25 #Javascript
BootStrap 标题设置跨行无效的解决方法
Oct 25 #Javascript
vue基于mint-ui的城市选择3级联动的示例
Oct 25 #Javascript
You might like
Zerg基本策略
2020/03/14 星际争霸
使用Apache的rewrite技术
2006/06/22 PHP
帖几个PHP的无限分类实现想法~
2007/01/02 PHP
PHP中Array相关函数简介
2016/07/03 PHP
PHP用PDO如何封装简单易用的DB类详解
2017/07/30 PHP
javascript flash下fromCharCode和charCodeAt方法使用说明
2008/01/12 Javascript
PPK 谈 JavaScript 的 this 关键字 [翻译]
2009/09/29 Javascript
js中有关IE版本检测
2012/01/04 Javascript
学习掌握JavaScript中this的使用技巧
2016/08/29 Javascript
基于vue的下拉刷新指令和滚动刷新指令
2016/12/23 Javascript
纯原生js实现贪吃蛇游戏
2020/04/16 Javascript
详解jQuery同步Ajax带来的UI线程阻塞问题及解决办法
2017/08/09 jQuery
VsCode新建VueJs项目的详细步骤
2017/09/23 Javascript
Node.js应用设置安全的沙箱环境
2018/04/23 Javascript
用vue快速开发app的脚手架工具
2018/06/11 Javascript
前端防止用户重复提交js实现代码示例
2018/09/07 Javascript
Easyui 关闭jquery-easui tab标签页前触发事件的解决方法
2019/04/28 jQuery
微信小程序按钮点击跳转页面详解
2019/05/06 Javascript
JS数组方法shift()、unshift()用法实例分析
2020/01/18 Javascript
[03:58]兄弟们,回来开黑了!DOTA2昔日战友招募宣传视频
2016/07/17 DOTA
Python time模块详解(常用函数实例讲解,非常好)
2014/04/24 Python
python实现上传样本到virustotal并查询扫描信息的方法
2014/10/05 Python
Python使用random和tertools模块解一些经典概率问题
2015/01/28 Python
Python打印scrapy蜘蛛抓取树结构的方法
2015/04/08 Python
深入理解NumPy简明教程---数组3(组合)
2016/12/17 Python
Django视图之ORM数据库查询操作API的实例
2017/10/27 Python
Python 实现日志同时输出到屏幕和文件
2020/02/19 Python
PyQt5 文本输入框自动补全QLineEdit的实现示例
2020/05/13 Python
Python基于数列实现购物车程序过程详解
2020/06/09 Python
python 爬取百度文库并下载(免费文章限定)
2020/12/04 Python
Eclipse面试题
2014/03/22 面试题
如何防止同一个帐户被多人同时登录
2013/08/01 面试题
浅谈react路由传参的几种方式
2021/03/23 Javascript
2015政治思想表现评语
2015/03/25 职场文书
高考百日冲刺决心书
2015/09/23 职场文书
详细了解java监听器和过滤器
2021/07/09 Java/Android