


So konvertieren Sie Breiten- und Längengrade mit PHP in Pixelkoordinaten
Mit der kontinuierlichen Weiterentwicklung der Web-Technologie stellen immer mehr Websites Informationen über Karten dar, und die Anzeige eines geeigneten Beschriftungspunkts auf der Karte ist ein sehr kritisches technisches Problem. Wenn wir Karten zum Anzeigen von Daten verwenden, müssen wir manchmal die Längen- und Breitengradkoordinaten auf der Karte in Pixelkoordinaten umwandeln, um beispielsweise automatisch Markierungspunkte auf der Karte zu lokalisieren. Daher stellen wir in diesem Artikel vor, wie man mit PHP Breiten- und Längengrade in Pixelkoordinaten umwandelt.
Was sind Breiten- und Längengrade und Pixelkoordinaten?
Bevor wir erklären, wie Breiten- und Längengrade in Pixelkoordinaten umgewandelt werden, müssen wir die Grundkonzepte von Breiten- und Längengraden sowie Pixelkoordinaten verstehen.
Die aus der Karte erhaltenen Koordinaten sind Längen- und Breitengrad, wobei sich der Längengrad auf die Position eines Punktes westlich der Erde und der Breitengrad auf die Position eines Punktes südlich oder nördlich des Äquators bezieht.
Die Pixelkoordinaten sind die Koordinaten auf dem Bildschirm, die aus Pixeln auf dem Bildschirm bestehen.
Bei der Anzeige von Daten auf der Karte müssen wir den Längen- und Breitengrad in Pixelkoordinaten umwandeln, um den spezifischen Standort zu lokalisieren.
Breiten- und Längengrad anhand von Pixeln berechnen
Als nächstes lernen wir, wie man Breiten- und Längengrad anhand von Pixelkoordinaten berechnen kann. In diesem Prozess müssen wir einige grundlegende Mathematik anwenden. Hier ist der Code für diesen Prozess:
function pixel2LatLng($x, $y, $zoom) { $numTiles = 1 << $zoom; // 2 ^ zoom $tileSize = 256; $x /= $tileSize; $y /= $tileSize; $x = min($x, $numTiles - 1); $y = min($y, $numTiles - 1); $lng = ($x / $numTiles) * 360.0 - 180.0; $lat = rad2deg(atan(sinh(pi() * (1 - 2 * $y / $numTiles)))); return ['lat' => $lat, 'lng' => $lng]; }
Diese Funktion empfängt 3 Parameter, nämlich die $x-, $y-Koordinaten des Pixels und den $zoom-Parameter, der die Zoomstufe beschreibt. Als Nächstes erstellen wir zwei Variablen, $numTiles und $tileSize, die die Anzahl der standardmäßigen 2D-Kartenkacheln und die Größe jeder Kachel (256 Pixel) darstellen.
Beachten Sie, dass wir beim Konvertieren von Pixelkoordinaten zunächst die Koordinaten durch $tileSize dividieren müssen, um sicherzustellen, dass sie im Standardbereich liegen. Begrenzen Sie sie dann in jeder Dimension auf den Maximalwert, um zu vermeiden, dass sie den Kartenanzeigebereich überschreiten.
Als nächstes verwenden Sie einfache mathematische Formeln, um den Breiten- und Längengrad zu berechnen. Zuerst berechnen wir $lng, den Längengrad, der der Pixelkoordinate $x entspricht. Dazu verwenden wir die Subtraktionsrechnung (([$x / $numTiles) * 360,0 - 180,0]), die uns die Gradskala des Pixels liefert, und subtrahieren dann 180 Grad davon. Der Grund, warum Sie 180 Grad subtrahieren müssen, liegt darin, dass der Längengrad zwischen -180 und +180 Grad liegen kann. Daher müssen wir den Wert auf diesen Bereich begrenzen.
Schließlich berechnen wir den Breitengradwert und geben ein assoziatives Array zurück, das die Koordinaten $lat und $lng enthält.
Pixelkoordinaten basierend auf Längen- und Breitengrad berechnen
Umgekehrt zum obigen Prozess können wir auch einen Pixelkoordinatenpunkt basierend auf Längen- und Breitengrad berechnen. Hier ist der Code für diesen Prozess:
function latLng2Pixel($latitude, $longitude, $zoom) { $numTiles = 1 << $zoom; // 2 ^ zoom $tileSize = 256; $x = round(($longitude + 180.0) / 360.0 * $numTiles); $y = round((1.0 - log(tan(deg2rad($latitude)) + 1.0 / cos(deg2rad($latitude))) / pi()) / 2.0 * $numTiles); return ['x' => $x * $tileSize, 'y' => $y * $tileSize]; }
Diese Funktion ist der obigen sehr ähnlich, außer dass sie Pixelkoordinaten basierend auf Breiten- und Längengrad berechnet und nicht umgekehrt. Wir verwenden die gleichen Variablen wie zuvor, $numTiles und $tileSize, und führen die Variablen $lat und $lng ein, um die an die Funktion übergebenen Breiten- und Längenwerte darzustellen.
Dann führen wir zunächst eine einfache Berechnung durch, um die Pixelkoordinate von $x zu ermitteln. Die Idee dieser Formel besteht darin, dass wir beim Bewegen auf der Karte, da sich der Längengrad von -180 Grad auf +180 Grad ändern kann, zunächst 180 Grad zum angegebenen Längengrad addieren, sodass nach der Bestimmung von 0 Grad das berechnete Ergebnis vorliegen kann garantiert ist ein positiver Wert. Als nächstes dividieren wir diesen Wert durch 360 Grad, um die x-Koordinate der Dezimalpunktposition zu erhalten, und multiplizieren ihn mit der Zweierpotenz der Karte, $numTiles, um die Pixelkoordinaten zu erhalten.
Als nächstes berechnen wir die Pixelkoordinate von $y. Beim Reisen auf der Karte kann sich der Breitengrad von -90 Grad bis +90 Grad ändern. Die Idee dieser Formel besteht darin, dass wir ausgehend von einem Referenzpunkt (dem Äquator) mithilfe der Tangens- und Arkustangensfunktionen die Entfernung zu und um den Punkt berechnen, den wir finden möchten. Schließlich dividieren wir durch $tileSize, um die Pixelkoordinaten in Pixel statt in Koordinaten umzuwandeln.
Zum Schluss geben Sie ein assoziatives Array zurück, das die Koordinaten $x und $y enthält.
Zusammenfassung
Das Obige ist die PHP-Implementierungsmethode zum Konvertieren von Längen- und Breitengraden in Pixelkoordinaten und zum Konvertieren von Pixelkoordinaten in Längen- und Breitengrade. Diese beiden Transformationstechniken können bei der Anzeige von Daten mithilfe von Karten sehr nützlich sein. Ich hoffe, dieser Artikel hilft Ihnen!
Das obige ist der detaillierte Inhalt vonSo konvertieren Sie Breiten- und Längengrade mit PHP in Pixelkoordinaten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Die JIT -Kompilierung von PHP 8 verbessert die Leistung, indem häufig ausgeführte Code in den Maschinencode zusammengestellt wird, um Anwendungen mit schweren Berechnungen zugute und die Ausführungszeiten zu reduzieren.

In dem Artikel wird das Sicherung von PHP -Dateien -Uploads erläutert, um Schwachstellen wie die Code -Injektion zu verhindern. Es konzentriert sich auf die Dateitypvalidierung, den sicheren Speicher und die Fehlerbehandlung, um die Anwendungssicherheit zu verbessern.

In dem Artikel werden OWASP Top 10 Schwachstellen in PHP- und Minderungsstrategien erörtert. Zu den wichtigsten Problemen gehören die Injektion, die kaputte Authentifizierung und XSS mit empfohlenen Tools zur Überwachung und Sicherung von PHP -Anwendungen.

In dem Artikel wird die symmetrische und asymmetrische Verschlüsselung in PHP erörtert und ihre Eignung, Leistung und Sicherheitsunterschiede verglichen. Die symmetrische Verschlüsselung ist schneller und für Massendaten geeignet, während asymmetrisch für den sicheren Schlüsselaustausch verwendet wird.

In Artikel wird das Abrufen von Daten aus Datenbanken mithilfe von PHP, die Schritte, Sicherheitsmaßnahmen, Optimierungstechniken und gemeinsame Fehler bei Lösungen erfasst.

In dem Artikel wird die Implementierung einer robusten Authentifizierung und Autorisierung in PHP erörtert, um den nicht autorisierten Zugriff zu verhindern, Best Practices zu beschreiben und sicherheitsrelevante Tools zu empfehlen.

Vorbereitete Aussagen in PHP erhöhen die Sicherheit und Effizienz der Datenbank durch Verhinderung der SQL -Injektion und Verbesserung der Abfrageleistung durch Zusammenstellung und Wiederverwendung.

In dem Artikel werden Strategien zur Implementierung der API-Rate in PHP erörtert, einschließlich Algorithmen wie Token-Bucket und Leaky Bucket sowie Bibliotheken wie Symfony/Rate-Limiter. Es deckt auch die Überwachung, die dynamischen Einstellungsgeschwindigkeiten und die Hand ab
