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 相关文章推荐
Javascript高级技巧分享
Feb 25 Javascript
原生js仿jq判断当前浏览器是否为ie,精确到ie6~8
Aug 30 Javascript
js操作滚动条事件实例
Jan 29 Javascript
jquery动态改变div宽度和高度
Feb 09 Javascript
Bootstrap模态框使用详解
Feb 15 Javascript
老生常谈jquery中detach()和remove()的区别
Mar 02 Javascript
JS/jquery实现一个网页内同时调用多个倒计时的方法
Apr 27 jQuery
vuejs2.0子组件改变父组件的数据实例
May 10 Javascript
浅谈ES6 模板字符串的具体使用方法
Nov 07 Javascript
Angular实现的table表格排序功能完整示例
Dec 22 Javascript
JS动态显示倒计时效果
Dec 12 Javascript
解决vue中axios设置超时(超过5分钟)没反应的问题
Sep 04 Javascript
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
php数组函数序列之in_array() 查找数组值是否存在
2011/10/29 PHP
Yii隐藏URL中index.php的方法
2016/07/12 PHP
php版微信公众平台之微信网页登陆授权示例
2016/09/23 PHP
JavaScript 错误处理与调试经验总结
2010/08/10 Javascript
javascript跨域刷新实现代码
2011/01/01 Javascript
原生javascript和jquery判断浏览器版本等信息
2013/07/04 Javascript
Jquery EasyUI的添加,修改,删除,查询等基本操作介绍
2013/10/11 Javascript
基于JavaScript创建动态Dom
2015/12/08 Javascript
Node.js重新刷新session过期时间的方法
2016/02/04 Javascript
通过隐藏iframe实现无刷新上传文件操作
2016/03/16 Javascript
全面解析Bootstrap中transition、affix的使用方法
2016/05/30 Javascript
JS闭包用法实例分析
2017/03/27 Javascript
Angular HMR(热模块替换)功能实现方法
2018/04/04 Javascript
浅析Vue实例以及生命周期
2018/08/14 Javascript
微信小程序 云开发模糊查询实现解析
2019/09/02 Javascript
JavaScript自动生成 年月范围 选择功能完整示例【基于jQuery插件】
2019/09/03 jQuery
layui内置模块layim发送图片添加加载动画的方法
2019/09/23 Javascript
在vue中使用jsx语法的使用方法
2019/09/30 Javascript
ES6之Proxy的get方法详解
2019/10/11 Javascript
使用vuex较为优雅的实现一个购物车功能的示例代码
2019/12/09 Javascript
python实现dict版图遍历示例
2014/02/19 Python
详解Python中find()方法的使用
2015/05/18 Python
遗传算法之Python实现代码
2017/10/10 Python
python  logging日志打印过程解析
2019/10/22 Python
TensorFlow查看输入节点和输出节点名称方式
2020/01/04 Python
linux系统下pip升级报错的解决方法
2021/01/31 Python
美国领先的精品家居照明和装饰产品在线零售商:LightsOnline.com
2018/01/23 全球购物
英国高街电视:High Street TV
2018/05/22 全球购物
Jar包的作用是什么
2014/03/30 面试题
终止劳动合同协议书
2014/10/05 职场文书
2015法院个人工作总结范文
2015/05/25 职场文书
实验心得体会范文
2016/01/25 职场文书
2019大学生实习报告
2019/06/21 职场文书
陶瓷类经典广告语集锦
2019/10/25 职场文书
浅谈MySQL中的六种日志
2022/03/23 MySQL
JS前端canvas交互实现拖拽旋转及缩放示例
2022/08/05 Javascript