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

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

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-07 15:18:02243Durchsuche

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)]

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))]

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

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}")

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!

Stellungnahme:
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