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自己写tab滑动门(通用版)
Oct 30 Javascript
关于火狐(firefox)及ie下event获取的两种方法
Dec 27 Javascript
js实现div在页面拖动效果
May 04 Javascript
JavaScript基础——使用Canvas绘图
Nov 02 Javascript
EasyUI 结合JS导出Excel文件的实现方法
Nov 10 Javascript
VUE JS 使用组件实现双向绑定的示例代码
Jan 10 Javascript
JavaScript中最常见的三个面试题解析
Mar 04 Javascript
关于Vue的路由权限管理的示例代码
Mar 06 Javascript
Node.Js中实现端口重用原理详解
May 03 Javascript
Express之托管静态文件的方法
Jun 01 Javascript
微信小程序下拉框功能的实例代码
Nov 06 Javascript
js+canvas实现两张图片合并成一张图片的方法
Nov 01 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中for循环语句的几种变型
2006/11/26 PHP
header跳转和include包含问题详解
2012/09/08 PHP
php获得url参数中具有&amp;的值的方法
2014/03/05 PHP
php操作mongoDB实例分析
2014/12/29 PHP
javascript编程起步(第二课)
2007/01/10 Javascript
javascript showModalDialog模态对话框使用说明
2009/12/31 Javascript
jQuery 学习第五课 Ajax 使用说明
2010/05/17 Javascript
JavaScript去掉空格的方法集合
2010/12/28 Javascript
javascript代码编写需要注意的7个小细节小结
2011/09/21 Javascript
js实现交换运动效果的方法
2015/04/10 Javascript
jQuery实现可用于博客的动态滑动菜单完整实例
2015/09/17 Javascript
JavaScript中的this,call,apply使用及区别详解
2016/01/29 Javascript
JS中使用apply、bind实现为函数或者类传入动态个数的参数
2016/04/26 Javascript
JavaScript基础重点(必看)
2016/07/09 Javascript
提高Web性能的前端优化技巧总结
2017/02/27 Javascript
d3.js实现立体柱图的方法详解
2017/04/28 Javascript
微信小程序 标签传入数据
2017/05/08 Javascript
webpack构建vue项目的详细教程(配置篇)
2017/07/17 Javascript
javascript基础进阶_深入剖析执行环境及作用域链
2017/09/05 Javascript
微信小程序使用picker实现时间和日期选择框功能【附源码下载】
2017/12/11 Javascript
vue使用rem实现 移动端屏幕适配
2018/09/26 Javascript
小程序实现左右来回滚动字幕效果
2018/12/28 Javascript
微信小程序上传图片并等比列压缩到指定大小的实例代码
2019/10/24 Javascript
JavaScript如何实现监听键盘输入和鼠标监点击
2020/07/20 Javascript
JS跨浏览器解析XML应用过程详解
2020/10/16 Javascript
python编程培训 python培训靠谱吗
2018/01/17 Python
Python OpenCV中的resize()函数的使用
2019/06/20 Python
Python3将数据保存为txt文件的方法
2019/09/12 Python
通过python检测字符串的字母
2020/02/18 Python
Python如何使用正则表达式爬取京东商品信息
2020/06/01 Python
windows系统Tensorflow2.x简单安装记录(图文)
2021/01/18 Python
HTML5 body设置全屏背景图片的示例代码
2020/12/08 HTML / CSS
刑事辩护授权委托书
2014/09/13 职场文书
机关作风整顿个人剖析材料
2014/10/06 职场文书
2015年教师节贺卡寄语
2015/03/24 职场文书
linux目录管理方法介绍
2022/06/01 Servers