Aktueller Standort: Startseite> Neueste Artikel> PHP implementiert eine vollständige Lösung, um Nutzern in der Nähe zu finden

PHP implementiert eine vollständige Lösung, um Nutzern in der Nähe zu finden

gitbox 2025-08-07

Einführung

In modernen sozialen Anwendungen ist das Finden von Benutzern in der Nähe zu einem gemeinsamen und wichtigen Merkmal geworden. Unabhängig davon, ob es sich um Dating, Interessengruppen oder lokale Serviceempfehlungen handelt, kann diese Funktion die Benutzererfahrung verbessern. In diesem Artikel wird vorgestellt, wie PHP in Kombination mit Front-End-Technologie verwendet wird, um einen vollständigen Prozess der Suche in der Nähe von Benutzern zu erreichen.

Holen Sie sich geografische Standortinformationen

Um Nutzern in der Nähe zu finden, müssen Sie zunächst den geografischen Standort des Besuchers erhalten. Die Geolocation -API von HTML5 bietet eine Möglichkeit, Informationen und Längengradinformationen in einem Browser zu erhalten, der bereits von den meisten modernen Browsern unterstützt wird.

Stellen Sie fest, ob der Browser die Positionierung unterstützt

Vor dem Aufrufen der Positionierungsfunktion wird empfohlen, festzustellen, ob der Browser die API unterstützt:

 
if (navigator.geolocation) {
    // Unterstützen Sie den geografischen StandortAPI
} else {
    // 不Unterstützen Sie den geografischen StandortAPI
}

Nach der Bestätigung der Unterstützung können Sie die API anrufen, um den Standort des Benutzers zu erhalten.

Benutzerbreiten und Längengrad erhalten und verarbeiten

Die Informationen zum Breitengrad und der Länge können über den folgenden Code erhalten werden:

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

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

Speichern Sie die Benutzerstandortinformationen

Nachdem der Standort des Benutzers erhalten wurde, muss er für nachfolgende Abfragen in der Datenbank gespeichert werden. Es wird empfohlen, die MySQL -Datenbank für die Verwaltung zu verwenden.

Erstellen Sie eine Tabellenstruktur für Speicherorte

Erstellen Sie zunächst eine Tabelle namens Benutzer :

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

PHP schreibt Standortinformationen in die Datenbank

Im Folgenden finden Sie ein PHP -Code -Beispiel, mit dem Benutzerspeicherortinformationen in der Datenbank gespeichert sind:

 
<?php
// Stellen Sie eine Verbindung zur Datenbank her
$conn = new PDO("mysql:host=localhost;dbname=nearby", "root", "");

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

// Fügen Sie die Datenbank ein
$sql = "INSERT INTO users (latitude, longitude) VALUES (?, ?)";
$stmt = $conn->prepare($sql);
$stmt->execute([$latitude, $longitude]);

echo "Standortinformationen werden erfolgreich gespeichert!";
?>

Finden Sie in der Nähe von Benutzern in der Nähe

Sobald die Standorte mehrerer Benutzer gespeichert sind, können andere Personen in der Nähe des aktuellen Benutzers durch Berechnung von Entfernungen festgestellt werden. Die folgenden zwei Entfernungsberechnungsmethoden werden eingeführt.

Euklidischer Abstandsalgorithmus

Der euklidische Abstand ist für vereinfachte Modelle geeignet und wird wie folgt berechnet:

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

Geeignet für Szenen mit kleineren Kartenanteilen.

Haversin -Formel berechnet den kugelförmigen Abstand

Die Haversin -Formel eignet sich besser für die Entfernungsberechnung der Koordinaten der Erdoberfläche:

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

Wo R der Radius der Erde ist, normalerweise 6371 Kilometer.

Zusammenfassen

In den oben genannten Schritten können wir eine PHP-basierte Funktion zum Auffinden von Personen in der Nähe implementieren. Von der Browser-Seite-Positionierung über serverseitige Speicher bis hin zu Algorithmus-basierten Filterbenutzern ist der gesamte Prozess für verschiedene Szenarien wie soziale Plattformen, Ereignisempfehlungen, Standortdienste usw. geeignet.