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 相关文章推荐
jQuery setTimeout()函数使用方法
Apr 07 Javascript
浅谈checkbox的一些操作(实战经验)
Nov 20 Javascript
jquery插件star-rating.js实现星级评分特效
Apr 15 Javascript
JS更改select内option属性的方法
Oct 14 Javascript
javascript瀑布流布局实现方法详解
Feb 17 Javascript
javascript检测移动设备横竖屏
May 21 Javascript
js实现无缝滚动图
Feb 22 Javascript
JavaScript实现form表单的多文件上传
Mar 27 Javascript
Angular.JS中select下拉框设置value的方法
Jun 20 Javascript
node.js用fs.rename强制重命名或移动文件夹的方法
Dec 27 Javascript
vue-cli脚手架-bulid下的配置文件
Mar 27 Javascript
vue学习之Vue-Router用法实例分析
Jan 06 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 function用法如何递归及return和echo区别
2014/03/07 PHP
PHP批量生成静态HTML的简单原理和方法
2014/04/20 PHP
PHP实现批量修改文件后缀名的方法
2015/07/30 PHP
js判断IE浏览器版本过低示例代码
2013/11/22 Javascript
jquery 取子节点及当前节点属性值
2014/07/25 Javascript
使用JQuery库提供的扩展功能实现自定义方法
2014/09/09 Javascript
JS快速实现移动端拼图游戏
2016/09/05 Javascript
模板视图和AngularJS之间冲突的解决方法
2016/11/22 Javascript
简单实现jQuery多选框功能
2017/01/09 Javascript
基于JavaScript实现下拉列表左右移动代码
2017/02/07 Javascript
JS实现控制图片显示大小的方法【图片等比例缩放功能】
2017/02/18 Javascript
Vue.JS项目中5个经典Vuex插件
2017/11/28 Javascript
解析vue路由异步组件和懒加载案例
2018/06/08 Javascript
利用Vue构造器创建Form组件的通用解决方法
2018/12/03 Javascript
原生JS实现的放大镜特效示例【测试可用】
2018/12/08 Javascript
微信小程序实现分享朋友圈的图片功能示例
2019/01/18 Javascript
JavaScript实现多张图片放大镜效果示例【不限定图片尺寸,rem单位】
2019/05/14 Javascript
vue+elementUI动态增加表单项并添加验证的代码详解
2020/12/17 Vue.js
[05:00]第二届DOTA2亚洲邀请赛主赛事第三天比赛集锦.mp4
2017/04/04 DOTA
python中使用urllib2伪造HTTP报头的2个方法
2014/07/07 Python
在Python的Django框架中获取单个对象数据的简单方法
2015/07/17 Python
在Python的Django框架中创建语言文件
2015/07/27 Python
python3中使用__slots__限定实例属性操作分析
2020/02/14 Python
Python grpc超时机制代码示例
2020/09/14 Python
Python爬虫新手入门之初学lxml库
2020/12/20 Python
使用SVG实现提示框功能的示例代码
2020/06/05 HTML / CSS
美国户外运动商店:Sun & Ski
2018/08/23 全球购物
日本热销NO.1胶原蛋白冻:Aishitoto爱希特多
2019/06/20 全球购物
小区门卫工作职责
2013/12/14 职场文书
服装设计行业个人的自我评价
2013/12/20 职场文书
铣床操作工岗位职责
2014/06/13 职场文书
普通党员对照检查材料
2014/09/24 职场文书
2015年党员干部承诺书
2015/01/21 职场文书
电视新闻稿
2015/07/17 职场文书
2015年教学副校长工作总结
2015/07/22 职场文书
阿里云Nginx配置https实现域名访问项目(图文教程)
2021/03/31 Servers