Inhaltsverzeichnis
Was sind Breiten- und Längengrade und Pixelkoordinaten?
Breiten- und Längengrad anhand von Pixeln berechnen
Pixelkoordinaten basierend auf Längen- und Breitengrad berechnen
Zusammenfassung
Heim Backend-Entwicklung PHP-Problem So konvertieren Sie Breiten- und Längengrade mit PHP in Pixelkoordinaten

So konvertieren Sie Breiten- und Längengrade mit PHP in Pixelkoordinaten

Apr 24, 2023 am 10:51 AM

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 [&#39;lat&#39; => $lat, 'lng' => $lng];
}
Nach dem Login kopieren

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 [&#39;x&#39; => $x * $tileSize, 'y' => $y * $tileSize];
}
Nach dem Login kopieren

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP 8 JIT (Just-in-Time) -Kompilation: Wie es die Leistung verbessert. PHP 8 JIT (Just-in-Time) -Kompilation: Wie es die Leistung verbessert. Mar 25, 2025 am 10:37 AM

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.

PHP Secure-Datei-Uploads: Verhindern von Sicherheitslücken im Zusammenhang mit Datei. PHP Secure-Datei-Uploads: Verhindern von Sicherheitslücken im Zusammenhang mit Datei. Mar 26, 2025 pm 04:18 PM

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.

OWASP Top 10 PHP: Beschreiben und mildern gemeinsame Schwachstellen. OWASP Top 10 PHP: Beschreiben und mildern gemeinsame Schwachstellen. Mar 26, 2025 pm 04:13 PM

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.

PHP -Verschlüsselung: Symmetrische und asymmetrische Verschlüsselung. PHP -Verschlüsselung: Symmetrische und asymmetrische Verschlüsselung. Mar 25, 2025 pm 03:12 PM

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.

Wie rufen Sie Daten mit PHP aus einer Datenbank ab? Wie rufen Sie Daten mit PHP aus einer Datenbank ab? Mar 20, 2025 pm 04:57 PM

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

PHP -Authentifizierung & amp; Autorisierung: sichere Implementierung. PHP -Authentifizierung & amp; Autorisierung: sichere Implementierung. Mar 25, 2025 pm 03:06 PM

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.

Was ist der Zweck von vorbereiteten Aussagen in PHP? Was ist der Zweck von vorbereiteten Aussagen in PHP? Mar 20, 2025 pm 04:47 PM

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.

PHP -API -Rate Begrenzung: Implementierungsstrategien. PHP -API -Rate Begrenzung: Implementierungsstrategien. Mar 26, 2025 pm 04:16 PM

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

See all articles