欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JS获取当前地理位置的方法

程序员文章站 2022-04-09 21:09:56
本文实例为大家分享了js获取当前地理位置方法的具体代码,供大家参考,具体内容如下 1.手机定位 var getlocation = function (su...

本文实例为大家分享了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>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。