js的定位实现和ip查询

sina的api

var GetLocationFromSina = function (successFunc, errorFunc) {
    $.getScript('http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js', function(result) {
        if (remote_ip_info.ret == '1') {
            var province = remote_ip_info.province;
            if (province == "北京" || province == "天津" || province == "上海" || province == "重庆") {
                province = province + "市";
            } else {
                province = province + "省";
            }
            var curCity = {
                id: '000000',
                name: province,
                date: curDateTime()
            };
            //当前定位城市
            $.cookie('VPIAO_PC_CURRENTCITY', JSON.stringify(curCity), { expires: 7, path: '/' });
            successFunc(province);
        } else {
            var msg = "没有找到匹配的IP地址信息!";
            var curCity = {
                id: '000001',
                name: '北京市',
                date: curDateTime()
            };
            //默认城市
            $.cookie('VPIAO_PC_DEFAULTCITY', JSON.stringify(curCity), { expires: 1, path: '/' });
            if (errorFunc != undefined)
                errorFunc(msg);
        }
    });
};

baidu的api

  1 var getLocation = function (successFunc, errorFunc) { //successFunc获取定位成功回调函数,errorFunc获取定位失败回调
  2 
  3     //首先设置默认城市
  4     var defCity = {
  5         id: '000001',
  6         name: '北京市',
  7         date: curDateTime()
  8     };
  9     //默认城市
 10     $.cookie('VPIAO_MOBILE_DEFAULTCITY', JSON.stringify(defCity), { expires: 1, path: '/' });
 11 
 12     if (navigator.geolocation) {
 13         navigator.geolocation.getCurrentPosition(function (position) {
 14             var lat = position.coords.latitude;
 15             var lon = position.coords.longitude;
 16             //var map = new BMap.Map("container");   // 创建Map实例
 17             var point = new BMap.Point(lon, lat); // 创建点坐标
 18             var gc = new BMap.Geocoder();
 19             gc.getLocation(point, function (rs) {
 20                 var addComp = rs.addressComponents;
 21                 var curCity = {
 22                     id: '',
 23                     name: addComp.province,
 24                     date: curDateTime()
 25                 };
 26                 //当前定位城市
 27                 $.cookie('VPIAO_MOBILE_CURRENTCITY', JSON.stringify(curCity), { expires: 7, path: '/' });
 28                 //alert(addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street);
 29                 if (successFunc != undefined)
 30                     successFunc(addComp);
 31             });
 32         },
 33         function (error) {
 34             switch (error.code) {
 35                 case 1:
 36                     $.toptip("位置服务被拒绝。");
 37                     break;
 38                 case 2:
 39                     $.toptip("暂时获取不到位置信息。");
 40                     break;
 41                 case 3:
 42                     $.toptip("获取位置信息超时。");
 43                     break;
 44                 default:
 45                     $.toptip("未知错误。");
 46                     break;
 47             }
 48             var curCity = {
 49                 id: '000001',
 50                 name: '北京市',
 51                 date: curDateTime()
 52             };
 53             //默认城市
 54             $.cookie('VPIAO_MOBILE_DEFAULTCITY', JSON.stringify(curCity), { expires: 1, path: '/' });
 55             if (errorFunc != undefined)
 56                 errorFunc(error);
 57         }, { timeout: 5000, enableHighAccuracy: true });
 58     } else {
 59         $.toptip("你的浏览器不支持获取地理位置信息。");
 60         if (errorFunc != undefined)
 61             errorFunc("你的浏览器不支持获取地理位置信息。");
 62     }
 63 };
 64 var showPosition = function (position) {
 65     var lat = position.coords.latitude;
 66     var lon = position.coords.longitude;
 67     //var map = new BMap.Map("container");   // 创建Map实例
 68     var point = new BMap.Point(lon, lat); // 创建点坐标
 69     var gc = new BMap.Geocoder();
 70     gc.getLocation(point, function (rs) {
 71         var addComp = rs.addressComponents;
 72         var curCity = {
 73             id: '',
 74             name: addComp.province,
 75             date: curDateTime()
 76         };
 77         //当前定位城市
 78         $.cookie('VPIAO_MOBILE_CURRENTCITY', JSON.stringify(curCity), { expires: 7, path: '/' });
 79         //alert(addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street);
 80     });
 81 };
 82 var showPositionError = function (error) {
 83     switch (error.code) {
 84         case 1:
 85             $.toptip("位置服务被拒绝。");
 86             break;
 87         case 2:
 88             $.toptip("暂时获取不到位置信息。");
 89             break;
 90         case 3:
 91             $.toptip("获取位置信息超时。");
 92             break;
 93         default:
 94             $.toptip("未知错误。");
 95             break;
 96     }
 97     var curCity = {
 98         id: '000001',
 99         name: '北京市',
100         date: curDateTime()
101     };
102     //默认城市
103     $.cookie('VPIAO_MOBILE_DEFAULTCITY', JSON.stringify(curCity), { expires: 1, path: '/' });
104 };
View Code

页面调用

 1   var localcurrent = function() {
 2         var currcookie = $.cookie('VPIAO_PC_CURRENTCITY');
 3         if (currcookie && currcookie != "") {
 4             var currCity = JSON.parse(currcookie);
 5             currentcity = currCity.name;
 6             search(1);
 7         } else {
 8             GetLocationFromSina(function (p) {
 9                 var currcookie = $.cookie('VPIAO_PC_CURRENTCITY');
10                 if (currcookie && currcookie != "") {
11                     var currCity = JSON.parse(currcookie);
12                     currentcity = currCity.name;
13                     
14                 } else {
15                     currentcity = p;
16                 }
17                 search(1);
18             }, function (error) {
19                 $.toptip(error);
20                 var defcookie = $.cookie('VPIAO_PC_DEFAULTCITY');
21                 if (defcookie && defcookie != "") {
22                     var defCity = JSON.parse(defcookie);
23                     currentcity = defCity.name;
24                     search(1);
25                 }
26             });
27         }
28     };
页面调用

 ip查询

1 var GetClientIp = function () {
2     var ip;
3     var url = 'http://chaxun.1616.net/s.php?type=ip&output=json&callback=?&_=' + Math.random();
4     $.getJSON(url, function (data) {
5         ip = data.Ip;
6     });
7     return ip;
8 }
ip查询
原文地址:https://www.cnblogs.com/qzzy/p/4171165.html