admin 发表于 2024-1-12 19:46:45

php根据经纬度列出附近的商家

要根据用户的经纬度按距离远近列出商家,你可以使用SQL查询,并结合先前提到的Haversine距离计算方法。以下是一个简单的例子:

<?php

function haversineDistance($lat1, $lon1, $lat2, $lon2) {
    // 这个函数在括号的地址里... (http://bbs.winchung.com/forum.php?mod=viewthread&tid=167&extra=page%3D1)
}

// 用户的经纬度
$userLat = 37.7749;
$userLon = -122.4194;

// 查询商家并按距离排序
$query = "SELECT id, name, latitude, longitude FROM merchants ORDER BY haversineDistance(latitude, longitude, $userLat, $userLon)";

// 执行查询并处理结果
// 这里使用你选择的数据库操作方法,例如MySQLi或PDO
// 请根据你的实际情况进行替换
$result = $yourDatabaseConnection->query($query);

if ($result) {
    // 输出商家列表
    while ($row = $result->fetch_assoc()) {
      $merchantId = $row['id'];
      $merchantName = $row['name'];
      $merchantLat = $row['latitude'];
      $merchantLon = $row['longitude'];

      // 计算商家距离
      $distance = haversineDistance($userLat, $userLon, $merchantLat, $merchantLon);

      echo "商家ID: $merchantId, 商家名字: $merchantName, 距离: $distance 公里<br>";
    }

    // 释放结果集
    $result->close();
} else {
    // 处理查询失败的情况
    echo "查询失败: " . $yourDatabaseConnection->error;
}

// 关闭数据库连接
$yourDatabaseConnection->close();

?>


页: [1]
查看完整版本: php根据经纬度列出附近的商家