使用JS获取当前地理位置方法汇总

1.手机WEB定位方法:
 

复制代码 代码如下:


 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.PC端通过IP实现方法:
 
  采用腾讯提供的接口,这个目前已经不能使用了  
 

复制代码 代码如下:


 <script type="text/javascript" src="http://fw.qq.com/ipaddress"></script>
 <script type="text/javascript">
     document.write(IPData[0]);    //显示IP地址
     document.write(IPData[2]);    //显示省
     document.write(IPData[3]);    //显示市
 </script>
 


  采用新浪接口: http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js
 
  多地域测试方法:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=127.0.0.1
 

复制代码 代码如下:


 <script type="text/javascript">
         $.getScript('http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js', function(_result) {
             if (remote_ip_info.ret == '1') {
                 alert('国家:' + remote_ip_info.country + '<BR>省:' + remote_ip_info.province + '<BR>市:' + remote_ip_info.city + '<BR>区:' + remote_ip_info.district + '<BR>ISP:' + remote_ip_info.isp + '<BR>类型:' + remote_ip_info.type + '<BR>其他:' + remote_ip_info.desc);
             } else {
                 alert('没有找到匹配的IP地址信息!');
             }
         });
 </script>
 


  网易有道IP地址接口(这个有待测试)
 
  http://www.youdao.com/smartresult-xml/search.s?type=ip&q=IP地址
 
     淘宝请求接口(GET)
 

复制代码 代码如下:


 <script>
 var ip = "124.127.108.133";
             var url = "http://ip.taobao.com/service/getIpInfo.php?ip=" + ip;
             $.getJSON(url, function (json) {
                 var myprovince2 = json.data.area;
                 var mycity2 = json.data.region;
                 alert("您所在的城市是:" + myprovince2 + mycity2);
             });
 </script>
 


  太平洋IP地址库API接口
 
  http://whois.pconline.com.cn/?ip=[ip地址字符串]
 
  另外:还有google、搜狐等提供对应的接口,大家可以自己试一试。
 
  搜狐IP地址查询接口(默认GBK):http://pv.sohu.com/cityjson
 
     搜狐IP地址查询接口(可设置编码):http://pv.sohu.com/cityjson?ie=utf-8
 
     搜狐另外的IP地址查询接口:http://txt.go.sohu.com/ip/soip
 
  3.获取客户端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>
 
  

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值