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和DOM Interfaces来处理HTML
Oct 09 Javascript
菜鸟javascript基础资料整理2
Dec 06 Javascript
js日期时间补零的小例子
Mar 05 Javascript
JavaScript 对任意元素,自定义右键菜单的实现方法
May 08 Javascript
全面理解面向对象的 JavaScript(来自ibm)
Nov 10 Javascript
javascript中取前n天日期的两种方法分享
Jan 26 Javascript
排序算法的javascript实现与讲解(99js手记)
Sep 28 Javascript
js实现的动画导航菜单效果代码
Sep 10 Javascript
如何解决IONIC页面底部被遮住无法向上滚动问题
Sep 06 Javascript
ES6新特征数字、数组、字符串
Oct 01 Javascript
Vue.js对象转换实例
Jun 07 Javascript
解决Vue+SpringBoot+Shiro跨域问题
Jun 09 Vue.js
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 文件状态缓存带来的问题
2008/12/14 PHP
PHP 实现多服务器共享 SESSION 数据
2009/08/15 PHP
php显示指定目录下子目录的方法
2015/03/20 PHP
Array.prototype 的泛型应用分析
2010/04/30 Javascript
javascript对数组的常用操作代码 数组方法总汇
2011/01/27 Javascript
jquery中文乱码的多种解决方法
2013/06/21 Javascript
两种方法实现在HTML页面加载完毕后运行某个js
2014/06/16 Javascript
加载列表时jquery获取ul中第一个li的属性
2014/11/02 Javascript
原生JS实现拖拽图片效果
2020/08/27 Javascript
javascript完美实现给定日期返回上月日期的方法
2017/06/15 Javascript
JS中type=&quot;button&quot;和type=&quot;submit&quot;的区别
2017/07/04 Javascript
JQuery选中select组件被选中的值方法
2018/03/08 jQuery
浅谈Vue 性能优化之深挖数组
2018/12/11 Javascript
python三元运算符实现方法
2013/12/17 Python
Python 数据结构之旋转链表
2017/02/25 Python
python3中str(字符串)的使用教程
2017/03/23 Python
200 行python 代码实现 2048 游戏
2018/01/12 Python
浅谈pycharm下找不到sqlalchemy的问题
2018/12/03 Python
通过pykafka接收Kafka消息队列的方法
2018/12/27 Python
python发送多人邮件没有展示收件人问题的解决方法
2019/06/21 Python
利用Python的sympy包求解一元三次方程示例
2019/11/22 Python
python图形用户接口实例详解
2019/12/16 Python
Python 音频生成器的实现示例
2019/12/24 Python
在Python中通过threshold创建mask方式
2020/02/19 Python
Jupyter notebook快速入门教程(推荐)
2020/05/18 Python
HTML5离线缓存在tomcat下部署可实现图片flash等离线浏览
2012/12/13 HTML / CSS
美国最大的旗帜经销商:Carrot-Top
2018/02/26 全球购物
Lookfantastic台湾:英国彩妆美发保养购物网
2018/03/26 全球购物
美国在线购物频道:Shop LC
2019/04/21 全球购物
描述RIP和OSPF区别以及特点
2015/01/17 面试题
电子邮箱格式怎么写
2014/01/12 职场文书
班级光棍节联谊会策划书
2014/10/10 职场文书
2014年学校食堂工作总结
2014/11/25 职场文书
简单的辞职信怎么写
2015/02/28 职场文书
MySQL Server层四个日志的实现
2022/03/31 MySQL
JS前端轻量fabric.js系列之画布初始化
2022/08/05 Javascript