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]