Heim > Java > javaLernprogramm > Wie konvertiere ich Breiten- und Längengrade in Mercator-Projektionspixelkoordinaten?

Wie konvertiere ich Breiten- und Längengrade in Mercator-Projektionspixelkoordinaten?

Mary-Kate Olsen
Freigeben: 2024-11-07 15:18:02
Original
315 Leute haben es durchsucht

How to Convert Latitude and Longitude to Mercator Projection Pixel Coordinates?

Breitengrad und Längengrad in Mercator-Projektionspixelkoordinaten umwandeln

Um geografische Koordinaten auf einem Mercator-Projektionsbild anzuzeigen, ist es notwendig, Breiten- und Längengrad umzurechnen Werte in entsprechende Pixelkoordinaten umwandeln.

Mercator-Projektionseigenschaften

Die Mercator-Projektion ist eine konforme Kartenprojektion, die die Winkel zwischen sich schneidenden Linien beibehält. Breitengrade werden durch horizontale gerade Linien dargestellt, während Längengrade durch vertikale gerade Linien dargestellt werden.

Umrechnungsformeln

Zur Ableitung von Ost- (x) und Nordkoordinaten (y). Breiten- und Längengrad können die folgenden Formeln verwendet werden:

E = R * (λ - λₒ)
N = R * ln[tan(π/4 + φ/2)]
Nach dem Login kopieren

wobei:

  • R der Radius der Erde ist (der Einfachheit halber als kugelförmig angenommen)
  • λ ist der Längengrad (Längengrad natürlichen Ursprungs wird normalerweise auf 0° gesetzt)
  • λₒ ist der Längengrad des Mittelmeridians
  • φ ist der Breitengrad

Vereinfachung die Formeln für die sphärische Mercator-Projektion:

x = R * λ
y = R * ln[tan((π/4) + (φ/2))]
Nach dem Login kopieren

Code-Implementierung

Hier ist ein Beispiel in Python, das die Konvertierung durchführt:

import math

earth_radius = 6371000 # in meters

def mercator_projection(latitude, longitude, map_width, map_height):
    """Converts latitude and longitude to Mercator projection pixel coordinates.

    Args:
        latitude (float): Latitude in degrees.
        longitude (float): Longitude in degrees.
        map_width (float): Width of the map image in pixels.
        map_height (float): Height of the map image in pixels.

    Returns:
        tuple: A tuple containing the x and y pixel coordinates.
    """

    # Convert latitude and longitude to radians
    latitude_radians = math.radians(latitude)
    longitude_radians = math.radians(longitude)

    # Calculate x and y pixel coordinates
    x = (longitude_radians + math.pi) * (map_width / (2 * math.pi))
    y = (map_height / 2) - (map_height * math.log(math.tan((math.pi / 4) + (latitude_radians / 2))) / (2 * math.pi))

    return x, y
Nach dem Login kopieren

Beispielverwendung

map_width = 991
map_height = 768

latitude = 58.07
longitude = -5.93

x, y = mercator_projection(latitude, longitude, map_width, map_height)

print(f"x: {x}, y: {y}")
Nach dem Login kopieren

Dadurch werden die Pixelkoordinaten auf dem Mercator-Projektionsbild für den angegebenen Breiten- und Längengrad angezeigt.

Das obige ist der detaillierte Inhalt vonWie konvertiere ich Breiten- und Längengrade in Mercator-Projektionspixelkoordinaten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage