Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

php代码实现最近提货点

作者:此岸蝶恋花   发布日期:2026-01-03   浏览:76

以下是一个简单的PHP代码示例,实现了查找最近的提货点的功能:

<?php
// 假设有一个提货点列表,每个提货点有经度和纬度信息
$pickupPoints = [
    ['name' => '提货点A', 'longitude' => 120.1234, 'latitude' => 30.5678],
    ['name' => '提货点B', 'longitude' => 121.4321, 'latitude' => 31.8765],
    ['name' => '提货点C', 'longitude' => 119.9876, 'latitude' => 29.6543],
    // ...
];

// 用户当前位置的经度和纬度
$userLongitude = 120.8765;
$userLatitude = 30.4321;

// 计算用户当前位置与每个提货点的距离,并找出最近的提货点
$minDistance = PHP_INT_MAX;
$nearestPickupPoint = null;

foreach ($pickupPoints as $pickupPoint) {
    $pickupLongitude = $pickupPoint['longitude'];
    $pickupLatitude = $pickupPoint['latitude'];

    // 使用Haversine公式计算两点间的距离
    $earthRadius = 6371; // 地球半径,单位:千米
    $deltaLatitude = deg2rad($pickupLatitude - $userLatitude);
    $deltaLongitude = deg2rad($pickupLongitude - $userLongitude);
    $a = sin($deltaLatitude / 2) * sin($deltaLatitude / 2) + cos(deg2rad($userLatitude)) * cos(deg2rad($pickupLatitude)) * sin($deltaLongitude / 2) * sin($deltaLongitude / 2);
    $c = 2 * atan2(sqrt($a), sqrt(1 - $a));
    $distance = $earthRadius * $c;

    // 更新最小距离和最近提货点
    if ($distance < $minDistance) {
        $minDistance = $distance;
        $nearestPickupPoint = $pickupPoint;
    }
}

// 输出最近的提货点
if ($nearestPickupPoint) {
    echo '最近的提货点是:' . $nearestPickupPoint['name'];
} else {
    echo '没有找到提货点';
}
?>

请注意,上述代码中的提货点列表和用户当前位置是示例数据,实际应用中需要根据实际情况进行替换。另外,该代码使用了Haversine公式计算两个经纬度之间的距离,具体实现可能因应用场景的不同而有所调整。

上一篇:服务器php探针

下一篇:运算符 php =+

大家都在看

php session用法

php 定义常量

phpisset函数

php html转图片

php后端

php爬虫框架

php读取csv文件

php+mysql动态网站开发

phpmyadmin docker

php session id

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站