Rumah >Java >javaTutorial >Bagaimana untuk Menukar Latitud dan Longitud kepada Koordinat Piksel Unjuran Mercator?

Bagaimana untuk Menukar Latitud dan Longitud kepada Koordinat Piksel Unjuran Mercator?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-07 15:18:02330semak imbas

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

Menukar Latitud dan Longitud kepada Koordinat Piksel Unjuran Mercator

Untuk memaparkan koordinat geografi pada imej unjuran Mercator, anda perlu menukar latitud dan longitud nilai ke dalam koordinat piksel yang sepadan.

Sifat Unjuran Mercator

Unjuran Mercator ialah unjuran peta konform yang mengekalkan sudut antara garis bersilang. Latitud diwakili oleh garis lurus mendatar, manakala longitud diwakili oleh garis lurus menegak.

Formula Penukaran

Untuk memperoleh koordinat Timur (x) dan Utara (y) daripada latitud dan longitud, formula berikut boleh digunakan:

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

di mana:

  • R ialah jejari Bumi (diandaikan sfera untuk kesederhanaan)
  • λ ialah longitud (longitud asal semula jadi biasanya ditetapkan kepada 0°)
  • λₒ ialah longitud meridian tengah
  • φ ialah latitud

Mempermudahkan formula untuk unjuran Mercator sfera:

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

Pelaksanaan Kod

Berikut ialah contoh dalam Python yang melakukan penukaran:

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

Contoh Penggunaan

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

Ini akan memaparkan koordinat piksel pada imej unjuran Mercator untuk latitud dan longitud yang ditentukan.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Latitud dan Longitud kepada Koordinat Piksel Unjuran Mercator?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn