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.
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.
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.
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);
});
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 zunächst eine Tabelle namens Benutzer :
CREATE DATABASE nearby;
USE nearby;
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
latitude DOUBLE,
longitude DOUBLE
);
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!";
?>
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.
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.
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.
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.