网页JS获取当前地理位置(省市区)

转载自:http://www.cnblogs.com/ZHF/p/4169634.html

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>
时间: 2024-10-23 20:31:21

网页JS获取当前地理位置(省市区)的相关文章

使用JS获取当前地理位置方法汇总(如用谷歌接口,会出再以上报错,必须申请密钥并设置接受服务器IP!!!)

RefererNotAllowedMapError 错误 加载 Google Maps JavaScript API 的当前 URL 尚未添加到允许的引用站点列表中.请在 Google API Console 上检查您的 API 密钥的引用站点设置. 请参阅 Google API Console 中的 API 密钥.如需了解详细信息,请参阅 API 密钥安全使用最佳实践. 如用谷歌接口,会出再以上报错,必须申请密钥并设置接受服务器IP!!! 今年的项目开发中,初步接触了移动端WEB开发,也就边学

网页 js 获取DPI pxTomm

//获取DPI function js_getDPI() { var arrDPI = new Array(); if ( window.screen.deviceXDPI != undefined ) { arrDPI[0] = window.screen.deviceXDPI; arrDPI[1] = window.screen.deviceYDPI; } else { var tmpNode = document.createElement( "DIV" ); tmpNode.s

微信公众平台网页开发实战--3.利用JSSDK在网页中获取地理位置(HTML5+jQuery)

复制一份JSSDK环境,创建一份index.html文件,结构如图7.1所示. 图7.1  7.1节文件结构 在location.js中,封装“getLocation”接口,如下: 01 wxJSSDK.location = function(locationApi){ 02 if(wxJSSDK.isReady){ //wxJSSDK.isReady 查看微信JSSDK是否初始化完毕 03 if(locationApi){ 04 locationApi.getLocation && wx

微信公众平台开发(106) 网页获取用户地理位置

关键字:微信公众平台 JSSDK 获取地理位置接口 网页获取用户地理位置 getLocation作者:方倍工作室 原文:http://www.cnblogs.com/txw1958/p/weixin-web-location.html 在这篇微信公众平台开发教程中,我们将介绍如何在网页中获取用户的地理位置信息. 本文分为以下二个部分: 生成JS-SDK权限验证签名 使用地理位置接口获取坐标 一.微信JS-SDK 1. 获得Access Token access token的获得方法在前面有介绍,

JS获取网页中HTML元素的几种方法分析

getElementById getElementsByName getElementsByTagName 大概介绍 getElementById ,getElementsByName ,getElementsByTagName ###adv### 后两个是得到集合,byid只是得到单个对象 getElementById 的用法 举个例子: <a id="link1" name="link1" href=http://homepage.yesky.com>

js获取网页的各种高度

网页可见区域宽: document.body.clientWidth网页可见区域高: document.body.clientHeight网页可见区域宽: document.body.offsetWidth (包括边线的宽)网页可见区域高: document.body.offsetHeight (包括边线的高)网页正文全文宽: document.body.scrollWidth网页正文全文高: document.body.scrollHeight网页被卷去的高: document.body.sc

js获取浏览器宽高、网页宽高、屏幕宽高、鼠标位置等(带图片说明)

网页可见区域宽: document.body.clientWidth;网页可见区域高: document.body.clientHeight;(点击查看大图) 网页可见区域宽: document.body.offsetWidth (包括边线的宽);网页可见区域高: document.body.offsetHeight (包括边线的宽);(点击查看大图)有没有发现,offsetWidth和clientWidth的区别,offsetWidt是连滚动条一起包含在内的. 网页正文全文宽: documen

JS获取网页宽高方法集合

JS获取网页宽高等方法的集合:document.body.clientWidth - 网页可见区域宽document.body.clientHeight - 网页可见区域高 document.body.offsetWidth - 网页可见区域宽,包括边线和滚动条的宽document.body.offsetHeight - 网页可见区域高,包括边线和滚动条的高[FF,chrom下是整个页面高,IE opera 下正常] document.body.scrollWidth - 网页总宽documen

js获取网页屏高 屏宽

<SCRIPT LANGUAGE="JavaScript"> <!-- //document.body.scrollTop 滚动条的上端距离 //document.body.scrollLeft 滚动条的左端距离 window.onload = function() { var s = ""; s += " 网页可见区域宽:"+ document.body.clientWidth; s += " 网页可见区域高:&qu