使用 PHP 将当前地理位置加载到数据库中

Posted

技术标签:

【中文标题】使用 PHP 将当前地理位置加载到数据库中【英文标题】:Load current geolocation into a database with PHP 【发布时间】:2015-12-22 05:23:10 【问题描述】:

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

我不知道如何获取当前位置并不断循环访问我的数据库。我希望在没有 Post & Get 变量的情况下每 2 分钟更新一次用户位置。如果有人有任何信息、任何文件或任何东西,那就太好了。我试着查了一下。

我发现有人说要使用 AJAX,但我不确定在没有某种交互的情况下如何循环通过我当前的位置。

我还看到另一个人在谈论将其转换为 JSON 数据。

任何想法将不胜感激!

【问题讨论】:

你需要更详细。你是如何让你的 php 工作的?这个php是做什么的? 对不起。我想将我的位置更新到我的数据库。同时我希望其他用户更新他们的位置,然后我希望它每隔几分钟刷新每个人的位置。目的是让每个人都能看到其他人在地图上的位置。 【参考方案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.
    

【讨论】:

非常感谢您的回答。我还有一个额外的问题。我正确设置了一切。我已经检查并确认它正在通过代码运行。一旦它到达 PHP 部分,我就无法让它更新数据库。当我将其设置为 $latitude 时,它​​会将我的数据库值重置回 0.00000。抱歉,我不是要您为我编写代码,但我似乎无法找到此信息。 无视。我明白了,这很简单。感谢您的帮助!

以上是关于使用 PHP 将当前地理位置加载到数据库中的主要内容,如果未能解决你的问题,请参考以下文章

Flutter Google Maps - 将相机移动到当前位置

如何将动态位置数据加载到字典对象/数组中?

如何将地图视图中已缩放的位置更改为当前设备位置

PHP页面加载/刷新到确切位置

将当前位置的距离添加到 NSMutableArray

php_l3arning_notes_4