php实现手机定位

摘要:
location=“.$_POST[”lat“].”,“.$_POST[“lng”].”&ak=*********************&coordtype=bd09ll&output=json“;$json=file_get_contents($url);$arr=json_decode($json,true);var_dump($arr);?˃

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);
?>

免责声明:文章转载自《php实现手机定位》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇sublime 学习笔记Redis中的批量操作Pipeline下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

php 文件 创建 剪切 复制 常用函数

<?phpheader('content-type:text/html;charset=utf-8');/** 注 touch 如文件已存在,设定文件的访问和修改时间 如果文件不存在,则会被创建。* touch(文件名,时间戳); 时间戳默认为当前时间 返回布尔值* */////创建文件 123.txt(如果文件不存在)if(!file_exists...

php 图片操作类 Intervention Image

官方网址:http://image.intervention.io/ 1,安装composer require intervention/image (如果使用1.*的版本 ,要安装 "intervention/image": "1.*") 2,使用并初始化对象 require 'vendor/autoload.php'; useIntervention...

javascript正则表达式

网上正则表达式的教程够多了,但由于javascript的历史比较悠久,也比较古老,因此有许多特性是不支持的。我们先从最简单地说起,文章所演示的正则基本都是perl方式。 元字符 ( [ { \ ^ $ | ) ? * + . 预定义的特殊字符 字符 正则 描述 \t /\t/ 制表符 \n /\n/ 换行符 \r /\r/ 回车...

JS异步加载,JQ事件不被执行解决方法

一,在我们实现动态生成HTML代码时会出现,使用JQ方法会不被执行,解决方法,如下:使用jquery的委托事件,将该方法委托到页面已经存在的一个节点上 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-...

如何在PHP5中通过PDO连接SQLite3数据库

  通过PHP跟PDO配置SQLite数据库是一件很繁琐的事情,经过一下午的研究,终于理清了里面的思路。现在拿出来跟大家共享。初学,错误请指出。 首先我们先选择要使用的web server 软件,由于从兼容性跟性能方面的需求,我选择了目前来说最新版的apache。 第二步,我们要使用目前最新版本的PHP zip package .这里提示大家一下,经过我痛...

PHP错误处理函数set_error_handler()的用法

定义和用法 set_error_handler() 函数设置用户自定义的错误处理函数。 该函数用于创建运行时期间的用户自己的错误处理方法。 该函数会返回旧的错误处理程序,若失败,则返回 null。 语法 set_error_handler(error_function,error_types)   参数 描述 error_function 必需。规...