使用PHP

时间:2015-12-22 05:23:10

标签: javascript php mysql ajax geolocation

我目前正在尝试创建一个将用户当前位置上传到我的mysql数据库的应用程序。我知道如何在javascript中使用谷歌地图。我知道足够让php工作。

我不知道的是如何获取当前位置并不断循环访问我的数据库。我希望每2分钟更新一次用户位置,而无需Post&获取变量。如果有人有任何信息,任何文件或任何伟大的东西。我试着查一查。

我发现有人说要使用AJAX,但我不确定如果没有某种互动,它会如何在我当前的位置循环。

我还看到另一个人谈论将其变成JSON数据。

任何想法都将不胜感激!

1 个答案:

答案 0 :(得分:1)

我会用简化的概念代码回答你,以获得一般的想法。

首先,您需要使用Javascript:

在Web应用程序中添加位置轮询功能
// We only start location update process if browser supports it
if ("geolocation" in navigator) 
{
    request_location();
} 

// Requesting location from user
function request_location()
{
    // Will repeat the process in two minutes
    setTimeout(request_location, 1000*60*2);

    // Get location info from browser and pass it to updating function
    navigator.geolocation.getCurrentPosition(update_location);
}

// Sending location to server via POST request
function update_location(position)
{
    // For simplicity of example we'll 
    // send POST AJAX request with jQuery
    $.post("/update-location.php",
    {
        latitude : position.coords.latitude,
        longtitude : position.coords.longitude
    },
    function(){
        // Position sent, may update the map
    });
}

然后在服务器端,您必须从上面的AJAX请求中接收坐标:

<?php 

    $latitude = filter_input(INPUT_POST, 'latitude', FILTER_VALIDATE_FLOAT);
    $longtitude = filter_input(INPUT_POST, 'longtitude', FILTER_VALIDATE_FLOAT);

    if($latitude && $longtitude)
    {
        // @TODO: Update database with this data.
    }