php实现手机定位

mobile.PHP文件

当用户当手机访问该页面时,通过实现页面表单隐藏封装自动提交获取手机浏览器经纬度并post给服务器

<html>
<meta charset="utf8">
<head>

<form name="form1" action="http://test.nwee.cc/ken/baidulocated.php" method="post">
<input type="text" name="lat" id="lat" style="display:none">
<input type="text" name="lng" id="lng" style="display:none">
</form>
<script type="text/javascript">
    var position_option = {
        enableHighAccuracy: true,
        maximumAge: Infinity,
        timeout: 100000
    }; 
    var lat;
    var lng;
    if(navigator.geolocation){
        navigator.geolocation.getCurrentPosition(getPositionSuccess, getPositionError, position_option);
    }else{
        alert('Geolocation is not supported by this browser.');
    }
    function getPositionSuccess(position) {
        lat = position.coords.latitude;
        lng = position.coords.longitude;
        //alert('您所在的位置: 纬度' + lat + ',经度' + lng);
fillForm(); 
//填充表单
document.form1.submit();
//post数据到服务器
    }
    function getPositionError(error) {
        switch (error.code) {
            case error.TIMEOUT:
            alert('The request to get user location timed out.');break;
            case error.PERMISSION_DENIED:
            alert('User denied the request for Geolocation.');break;
            case error.POSITION_UNAVAILABLE:
            alert('Location information is unavailable.');break;
            default:
            alert('An unknown error occurred.');
        }
    }
    function fillForm(){
        document.getElementById('lat').value = lat;
        document.getElementById('lng').value = lng;
    }
</script>
</head>

</html>

 

located.php文件

通过百度定位api进行解析定位

<?php
header("Content-type:text/html; charset=utf8");
$url="http://api.map.baidu.com/geocoder/v2/?location=".$_POST["lat"].",".$_POST["lng"]."&ak=*****************************&coordtype=bd09ll&output=json";
$json = file_get_contents($url);
$arr = json_decode($json, true);
var_dump($arr);
?>

 

posted @ 2017-08-31 11:59  指战员1024  阅读(426)  评论(0编辑  收藏  举报