Position actuelle: Accueil> Derniers articles> PHP implémente une solution complète pour trouver les utilisateurs à proximité

PHP implémente une solution complète pour trouver les utilisateurs à proximité

gitbox 2025-08-07

introduction

Dans les applications sociales modernes, trouver des utilisateurs à proximité est devenu une caractéristique commune et importante. Qu'il s'agisse de rencontres, de groupes d'intérêt ou de recommandations de services locaux, cette fonction peut améliorer l'expérience utilisateur. Cet article présentera comment utiliser PHP combiné à la technologie frontale pour obtenir un processus complet de recherche des utilisateurs à proximité.

Obtenir des informations sur la localisation géographique

Afin de trouver des utilisateurs à proximité, vous devez d'abord obtenir l'emplacement géographique du visiteur. L'API Geolocation de HTML5 fournit un moyen d'obtenir des informations de latitude et de longitude dans un navigateur, qui est déjà pris en charge par la plupart des navigateurs modernes.

Déterminer si le navigateur prend en charge le positionnement

Avant d'appeler la fonction de positionnement, il est recommandé de déterminer si le navigateur prend en charge l'API:

 
if (navigator.geolocation) {
    // Soutenir l'emplacement géographiqueAPI
} else {
    // 不Soutenir l'emplacement géographiqueAPI
}

Après avoir confirmé l'assistance, vous pouvez appeler l'API pour obtenir l'emplacement de l'utilisateur.

Obtenir et traiter la latitude et la longitude des utilisateurs

Les informations de latitude et de longitude peuvent être obtenues via le code suivant:

 
navigator.geolocation.getCurrentPosition(function(position) {
    var latitude = position.coords.latitude;   // latitude
    var longitude = position.coords.longitude; // longitude

    // 发送经latitude到后端处理
    // sendLocationToServer(latitude, longitude);
});

Stocker les informations de localisation des utilisateurs

Après avoir obtenu l'emplacement de l'utilisateur, il doit être stocké dans la base de données pour les requêtes suivantes. Il est recommandé d'utiliser la base de données MySQL pour la gestion.

Créer une structure de table pour les emplacements de stockage

Créez d'abord un tableau appelé utilisateurs :

 
CREATE DATABASE nearby;
USE nearby;
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    latitude DOUBLE,
    longitude DOUBLE
);

PHP écrit des informations de localisation dans la base de données

Ce qui suit est un exemple de code PHP qui stocke les informations de localisation de l'utilisateur dans la base de données:

 
<?php
// Connectez-vous à la base de données
$conn = new PDO("mysql:host=localhost;dbname=nearby", "root", "");

// 获取经latitude
$latitude = $_POST['latitude'];
$longitude = $_POST['longitude'];

// Insérer la base de données
$sql = "INSERT INTO users (latitude, longitude) VALUES (?, ?)";
$stmt = $conn->prepare($sql);
$stmt->execute([$latitude, $longitude]);

echo "Les informations de localisation sont enregistrées avec succès!";
?>

Trouvez les utilisateurs à proximité

Une fois les emplacements de plusieurs utilisateurs stockés, d'autres personnes proches de l'utilisateur actuel peuvent être trouvées en calculant les distances. Les deux méthodes de calcul de distance suivantes sont introduites.

Algorithme de distance euclidienne

La distance euclidienne convient aux modèles simplifiés et est calculé comme suit:

 
distance = sqrt((x2 - x1)^2 + (y2 - y1)^2)

Convient pour des scènes aux proportions de cartes plus petites.

La formule Haversine calcule la distance sphérique

La formule Haversine est plus adaptée au calcul de la distance des coordonnées de la surface de la Terre:

 
distance = 2 * r * asin(sqrt(
    sin((lat2 - lat1) / 2)^2 +
    cos(lat1) * cos(lat2) * sin((lng2 - lng1) / 2)^2
))

r est le rayon de la terre, généralement 6371 kilomètres.

Résumer

Grâce aux étapes ci-dessus, nous pouvons implémenter une fonction basée sur PHP pour trouver des personnes voisines. Du positionnement côté navigateur, au stockage côté serveur, aux utilisateurs de filtrage basés sur des algorithmes, l'ensemble du processus convient à divers scénarios tels que les plateformes sociales, les recommandations d'événements, les services de localisation, etc. Dans les projets réels, la mise en cache et le géo-index peuvent également être combinées avec l'optimisation des performances pour améliorer l'expérience utilisateur.