南宁28生活网   切换城市   |   您好,欢迎来到南宁28生活网!
今天是:
 
生活百科
 
 
leo
  14级
帖子:118
精华:0
积分:236
注册:2015-12-14

 

【h5精准定位】手机端H5地理定位结合腾讯地图API实现精准定位!

浏览:74536 次   |   倒序看帖 楼主    1 楼
JS获取定位信息
function gourl(url) {
    var xhr = new XMLHttpRequest();
    xhr.open("POST", url, true);
    xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xhr.onreadystatechange = function () {
        var XMLHttpReq = xhr;
        /**        
        XMLHttpReq.readyState        
        0: 请求未初始化        
        1: 服务器连接已建立        
        2: 请求已接收        
        3: 请求处理中        
        4: 请求已完成,且响应已就绪        
        **/

        if (XMLHttpReq.readyState == 4) {
            if (XMLHttpReq.status == 200) {
                var data = XMLHttpReq.responseText;
                // alert(data)
                // console.log(data);
                // var json = JSON.parse(JSON.parse(data));
                var json = JSON.parse(data);
                alert(json.result.address);
            } else if (XMLHttpReq.status == 100) {

            } else if (XMLHttpReq.status == 300) {

            } else if (XMLHttpReq.status == 400) {

            } else if (XMLHttpReq.status == 500) {

            } else if (XMLHttpReq.status == 0) {
                /** 0不是http协议的状态,关于XMLHttpReq.status的说明:                
                1、If the state is UNSENT or OPENED, return 0.(如果状态是UNSENT或者OPENED,返回0)                
                2、If the error flag is set, return 0.(如果错误标签被设置,返回0)                
                3、Return the HTTP status code.(返回HTTP状态码)                
                第一种情况,例如:url请求的是本地文件,状态会是0                
                第二种情况经常出现在跨域请求中,比如url不是本身网站IP或域名,例如请求www.baidu.com时                
                第三种,正常请求本站http协议信息时,正常返回http协议状态值                
                **/
            }
        }
    };
    alert(111);
    xhr.send();
}

var geo = document.getElementById('geo');
if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(
        function (ev) {
            var latitude = ev.coords.latitude;
            var longitude = ev.coords.longitude;
            geo.innerHTML = '纬度:' + latitude + ' 经度:' + longitude;
            alert('纬度:' + latitude + ' 经度:' + longitude);
            var url = "http://定位接口地址/?lat=" + latitude + "&lng=" + longitude;
            gourl(url);
            createMap(latitude, longitude);
        },
        function (error) {
            switch (error.code) {
                case error.PERMISSION_DENIED:
                    geo.innerHTML = "用户拒绝共享地理位置信息";
                    break;
                case error.POSITION_UNAVAILABLE:
                    geo.innerHTML = "无法获取当前位置";
                    break;
                case error.TIMEOUT:
                    geo.innerHTML = "操作超时";
                    break;
                case error.UNKNOWN_ERROR:
                    geo.innerHTML = "其他错误";
                    break;
            }
        })
}
else {
    alert('该浏览器不支持');
}

PHP函数API转换经纬度,获得详细地址信息。
上面的接口地址就是请求这里:

$ip_tencent_api = 'https://apis.map.qq.com/ws/geocoder/v1/?location='.$_GET['lat'].','.$_GET['lng'].'&key=你申请的腾讯地图key';
$res = file_get_contents($ip_tencent_api);
echo $res;
exit;

特别注意:这个是必须用户授权定位,才能获取经纬度,不授权不能获取地理经纬度,也就无法获取详细地址。

 
 
|< < >
 
我来回复:
 
您需要登录后才可以回帖 登录注册
 
特别推荐 · 生活社区
  • 今天握紧方向盘,明天稳握人生路,现在拿下驾照,未来自由是你,出行舒服是你
  • 恭喜这周通过科三考试的学员,最近驾校信息发得少,通过率却高。学员很努力、很聪明,祝他们以后开车顺利!
  • 【天井岭】山顶风景旖旎,山色如画,俯瞰脚下锦绣山河,尽收世间万般风光!
  • 南宁市【农兴驾校】祝2026年高考学子:金榜题名,考取理想大学,开启人生新篇章!
  • 【广西三象建筑安装工程有限公司】广西南宁市泰康桂圆养老项目
  • 【广西三象建筑安装工程有限公司】绿地东盟大学城 grc构件 4个地块,施工周期两年
  • 【广西华晟黑白根生产基地】shicai188.julong5.com 专业供应黑白根、广西白、金镶玉
  • 桂林三象建筑材料有限公司,专业生产EPS、GRC构件
  • 广西黑白根有哪些特点?广西黑白根的价格是多少?广西黑白根有哪些知名品牌?哪家品牌口碑最好?
  • 【灌阳县文市镇华晟黑白根石材厂】www.shicai08.com 专业供应黑白根、广西白、金镶玉等
  • 广西桂林平乐桥亭【柿饼之乡】纯手工制作、无任何添加剂,柿饼每年10月后上市,欢迎联系订购!
  • 【广西桂林华晟石材有限公司】www.shicai08.com 广西黑白根 现货
  • 【桂林三象建筑材料有限公司】外墙软瓷(仿古砖)
  • 【广西三象建筑安装工程有限公司】外墙涂料工程
  • 【桂林三象建筑材料有限公司】铝单板外装工程
  •