当前位置: 首页 > 知识库问答 >
问题:

哈弗辛计算:显示集合内的用户[关闭]

蒋阳华
2023-03-14

询问代码的问题必须证明对正在解决的问题的最低理解。包括尝试的解决方案、它们不起作用的原因以及预期的结果。另请参阅:堆栈溢出问题清单

为我的本地社区构建一个基于PHP和SQL的拼车应用程序。虽然我通常对php编码很在行,但我很难找到列出所需的数学公式:

  • 前5名附近用户,根据主要用户的长/纬度从最近到最远排序

SQL数据库包含每5分钟更新一次的每个联机用户的long/lat。

我四处寻找,但认为我可能找错了东西。非常感谢任何指导。

共有1个答案

韶硕
2023-03-14

下面的SQL查询使用球面余弦定律计算坐标和表中坐标之间的距离。

d=acos(sin(lat1))。sin(lat2)cos(lat1)。cos(lat2)。cos(lng2-lng1))。R

查询使用SQL数学函数

require("dbinfo.php");//database parameters
&center_lat = primaryLat;
$center_lng = primarylng;
$radius =  0.5;//500 meters

$arr = array();
//Connect to database
$dbh = new PDO("mysql:host=$host;dbname=$database", $username, $password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
try {
    // Prepare statement
    $stmt = $dbh->prepare("SELECT  name, lat, lng, ( 3959 * acos( cos( radians(?) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(?) ) + sin( radians(?) ) * sin( radians( lat ) ) ) ) AS distance FROM gbstn HAVING distance < ? ORDER BY distance LIMIT 0 , 5");
    // Assign parameters
    $stmt->bindParam(1,$center_lat);
    $stmt->bindParam(2,$center_lng);
    $stmt->bindParam(3,$center_lat);
    $stmt->bindParam(4,$radius);
    //Execute query
    $stmt->setFetchMode(PDO::FETCH_OBJ);
    $stmt->execute();
    //Show the results  
    while($obj = $stmt->fetch()) {  
        $arr[] = $obj;
    }
    if (count($arr) >= 1)
    {
        echo '{"marker":'.json_encode($arr).'}';
    }else{
        echo '{"marker":[{"name":"No Results","lat":'.$center_lat.',"lng":'.$center_lng.',"distance":0}]}';  
    }

}


catch(PDOException $e) {
    echo "I'm sorry I'm afraid you can't do that.". $e->getMessage() ;// Remove or modify after testing 
    file_put_contents('PDOErrors.txt',date('[Y-m-d H:i:s]').", mapSelect.php, ". $e->getMessage()."\r\n", FILE_APPEND);  
 }
//Close the connection
$dbh = null; 
?>

使用PDO代替已弃用的mysql_函数。

您将需要修改该语句以适合。调试后,还要删除catch块中的echo。

 类似资料:
  • 本文向大家介绍java计算集合对称差的示例代码,包括了java计算集合对称差的示例代码的使用技巧和注意事项,需要的朋友参考一下 序 本文简单介绍下计算集合对称差的几种方法。 maven 对称差 两个集合的对称差是只属于其中一个集合,而不属于另一个集合的元素组成的集合。 集合A和B的对称差通常表示为AΔB,对称差的符号在有些图论书籍中也使用符号⊕来表示。例如:集合{1,2,3}和{3,4}的对称差为

  • 所以我试图将一个csv文件导入我的mongo db。这些字段包括用户名和密码,这是一个字符串。我能够成功导入文件,但密码仅存储为字符串。但我的数据库存储散列密码,并且有一个盐域。我想知道,在将密码导入数据库之前,是否可以强制mongo对密码进行哈希运算。有命令吗,还是我得另找办法?非常感谢您的建议。 请注意,我能够成功导入所有数据,我只想知道如何在导入时散列用户密码,然后将其存储。

  • 问题内容: 我需要一些易于实现的单个cpu和内存密集型计算,可以用Java为测试线程调度程序编写这些计算。 它们应该花费一些时间,但是更重要的是消耗资源。 有任何想法吗? 问题答案: CPU密集型任务的一些简单示例: 搜索质数(涉及许多BigInteger部门) 计算大阶乘,例如2000!((涉及许多BigInteger乘法) 许多Math.tan()计算(这很有趣,因为Math.tan是本机的,

  • Swift 4集合是用于存储相同类型的不同值,但它们没有像数组那样的有明确排序顺序。 如果不需要元素排序,或者需要没有重复值(唯一值),则可以使用集合而不是数组(集合只允许不同的值)。 类型必须是可散列类型并且是可以比较的,才能存储在一个集合中。哈希值是对象的值相等。例如,如果两个对象相等:,则。 默认情况下,所有基本值都是可散列类型,可以用作集合值。 创建集 使用以下初始化语法创建某个类型的空集

  • 我想向用户展示他们的客户端工具也可能生成的散列,因此我一直在比较在线散列工具。我的问题是关于它们的散列形式,因为奇怪的是,它们是不同的。 在快速搜索之后,我用5进行了测试: http://www.convertstring.com/hash/sha256 http://www.freeformatter.com/sha256-generator.html#ad-output http://onli

  • 我刚刚讨论了散列码的概念,遇到了一行: