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 相关文章推荐
extjs 学习笔记(一) 一些基础知识
Oct 13 Javascript
Javascript document.referrer判断访客来源网址
May 15 Javascript
jQuery学习笔记之DOM对象和jQuery对象
Dec 22 Javascript
将list转换为json失败的原因
Dec 17 Javascript
JS函数重载的解决方案
May 13 Javascript
关于JS数组追加数组采用push.apply的问题
Jun 09 Javascript
JavaScript中SetInterval与setTimeout的用法详解
Nov 10 Javascript
javascript中eval和with用法实例总结
Nov 30 Javascript
JS实现重新加载当前页面或者父页面的几种方法
Nov 30 Javascript
纯javaScript、jQuery实现个性化图片轮播【推荐】
Jan 08 Javascript
javaScript中indexOf用法技巧
Nov 26 Javascript
在pycharm中开发vue的方法步骤
Mar 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 curl 并发最佳实践代码分享
2012/09/05 PHP
PHP+FastCGI+Nginx配置PHP运行环境
2014/08/07 PHP
PHP使用mkdir创建多级目录的方法
2015/12/22 PHP
初识PHP中的Swoole
2016/04/05 PHP
laravel 实现用户登录注销并限制功能
2019/10/24 PHP
javascript全局变量封装模块实现代码
2012/11/28 Javascript
解决Extjs 4 Panel作为Window组件的子组件时出现双重边框问题
2013/01/11 Javascript
jquery select 设置默认选中的示例代码
2014/02/07 Javascript
jQuery判断数组是否包含了指定的元素
2015/03/10 Javascript
jquery实现漫天雪花飞舞的圣诞祝福雪花效果代码分享
2015/08/20 Javascript
js图片跟随鼠标移动代码
2015/11/26 Javascript
Javascript生成带参数的二维码示例
2016/10/10 Javascript
JS实现侧边栏鼠标经过弹出框+缓冲效果
2017/03/29 Javascript
webpack构建vue项目的详细教程(配置篇)
2017/07/17 Javascript
nodejs 搭建简易服务器的图文教程(推荐)
2017/07/18 NodeJs
AngularJS标签页tab选项卡切换功能经典实例详解
2018/05/16 Javascript
对angular4子路由&amp;辅助路由详解
2018/10/09 Javascript
node.js基于socket.io快速实现一个实时通讯应用
2019/04/23 Javascript
Python栈类实例分析
2015/06/15 Python
Python编程之黑板上排列组合,你舍得解开吗
2017/10/30 Python
Python各类图像库的图片读写方式总结(推荐)
2018/02/23 Python
pandas全表查询定位某个值所在行列的方法
2018/04/12 Python
python 3.7.4 安装 opencv的教程
2019/10/10 Python
Django 项目通过加载不同env文件来区分不同环境
2020/02/17 Python
Python语法垃圾回收机制原理解析
2020/03/25 Python
python中adb有什么功能
2020/06/07 Python
python脚本第一行如何写
2020/08/30 Python
python 如何设置守护进程
2020/10/29 Python
全球速卖通:AliExpress(国际版淘宝)
2017/09/20 全球购物
新西兰最大的连锁超市:Countdown
2020/06/04 全球购物
如何转换一个字符串到enum值
2014/04/12 面试题
商场活动策划方案
2014/01/24 职场文书
社会稳定风险评估方案
2014/06/02 职场文书
经典团队口号大全
2014/06/21 职场文书
班干部学习委员竞选稿
2015/11/20 职场文书
班级班风口号大全
2015/12/25 职场文书