• php实现手机定位功能的实例


    最近在做通过定位手机用户,进行消息推送,经过分析最终做法如下

    mobile.php文件

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

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    47

    48

    49

    50

    51

    52

    53

    54

    55

    56

    57

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

    ?>

  • 相关阅读:
    多组件共享-vuex —— 使用vuex 报错 actions should be function or object with ”handler“
    时间复杂度/空间复杂度
    Nodejs学习(三)-安装nodejs supervisor,提高点效率吧。
    Nodejs学习(二)-express生成器
    Nodejs学习(一)-Nodejs和express的安装和配置
    PHP连接MySQL的时候报错SQLSTATE[HY000] [2002] No such file or directory
    phpstorm 16.1 注册码
    Express安装过程
    NodeJs解析web一例
    NodeJs 连接mysql一例。
  • 原文地址:https://www.cnblogs.com/apolloren/p/10031067.html
Copyright © 2020-2023  润新知