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 相关文章推荐
使用自定义setTimeout和setInterval使之可以传递参数和对象参数
Apr 24 Javascript
JavaScript 未结束的字符串常量常见解决方法
Jan 24 Javascript
js调用图片隐藏&amp;显示实现代码
Sep 13 Javascript
深入理解javascript中return的作用
Dec 30 Javascript
js截取中英文字符串、标点符号无乱码示例解读
Apr 17 Javascript
JQuery控制Radio选中方法分析
May 29 Javascript
jquery实现可横向和竖向展开的动态下滑菜单效果
Aug 24 Javascript
js 模仿锚点定位的实现方法
Nov 19 Javascript
BootStrop前端框架入门教程详解
Dec 25 Javascript
微信小程序登录换取token的教程
May 31 Javascript
Vue Object 的变化侦测实现代码
Apr 15 Javascript
如何在CocosCreator里画个炫酷的雷达图
Apr 16 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实现的链式队列结构示例
2017/09/15 PHP
基于ThinkPHP删除目录及目录文件函数
2020/10/28 PHP
js同时按下两个方向键
2007/12/01 Javascript
10个基于浏览器的JavaScript调试工具分享
2013/02/07 Javascript
js中文逗号转英文实现
2014/02/11 Javascript
JavaScript遍历table表格中的某行某列并打印其值
2014/07/08 Javascript
使用 js+正则表达式为关键词添加链接
2014/11/11 Javascript
使用requestAnimationFrame实现js动画性能好
2015/08/06 Javascript
JS实现模拟百度搜索“2012世界末日”网页地震撕裂效果代码
2015/10/31 Javascript
jquery实现鼠标悬浮停止轮播特效
2020/08/20 Javascript
BootStrap的JS插件之轮播效果案例详解
2016/05/16 Javascript
iscroll碰到Select无法选择下拉刷新的解决办法
2016/05/21 Javascript
js计算系统当前日期是星期几的方法
2016/07/14 Javascript
JavaScript简单获取系统当前时间完整示例
2016/08/02 Javascript
AngularJS全局scope与Isolate scope通信用法示例
2016/11/22 Javascript
浅谈Node.js:Buffer模块
2016/12/05 Javascript
js实现按座位号抽奖
2017/04/05 Javascript
基于jQuery的左滑出现删除按钮的示例
2017/08/29 jQuery
详解Vue-cli代理解决跨域问题
2017/09/27 Javascript
解决koa2 ctx.render is not a function报错问题
2018/08/07 Javascript
Vuejs 实现简易 todoList 功能 与 组件实例代码
2018/09/10 Javascript
layDate插件设置开始和结束时间
2018/11/15 Javascript
vue webpack打包后图片路径错误的完美解决方法
2018/12/07 Javascript
js实现随机数小游戏
2019/06/28 Javascript
微信小程序语音同步智能识别的实现案例代码解析
2020/05/29 Javascript
vue路由切换时取消之前的所有请求操作
2020/09/01 Javascript
Python装饰器用法实例总结
2018/05/26 Python
详解Python中的测试工具
2019/06/09 Python
关于numpy.where()函数 返回值的解释
2019/12/06 Python
基于Python和PyYAML读取yaml配置文件数据
2020/01/13 Python
python+opencv3生成一个自定义纯色图教程
2020/02/19 Python
python是怎么被发明的
2020/06/15 Python
keras使用Sequence类调用大规模数据集进行训练的实现
2020/06/22 Python
高中国旗下的演讲稿
2014/08/28 职场文书
爱心募捐感谢信
2015/01/22 职场文书
Python的flask接收前台的ajax的post数据和get数据的方法
2021/04/12 Python